会员可以在此提问,百战程序员老师有问必答
对大家有帮助的问答会被标记为“推荐”
看完课程过来浏览一下别人提的问题,会帮你学得更全面
截止目前,同学们一共提了 132903个问题
WEB前端全系列/第十一阶段:前端工程化/Webpack 8282楼
JAVA 全系列/第二阶段:JAVA 基础深化和提高/容器 8284楼
JAVA 全系列/第七阶段:生产环境部署与协同开发/Docker 8287楼

jdbcdemo.zip


运行添加后一直报错,我直接把代码复制上去也不行,测试数据库连接是正常的

image.png

image.png


java.lang.NullPointerException: Cannot invoke "java.sql.Connection.createStatement()" because "connection" is null

at com.itbaizhan.StatementTest.insertUsers(StatementTest.java:22)

at com.itbaizhan.Test.main(Test.java:6)

Exception in thread "main" java.lang.NullPointerException: Cannot invoke "java.sql.Statement.close()" because "statement" is null

at com.itbaizhan.JdbcUtils.closeStatement(JdbcUtils.java:64)

at com.itbaizhan.JdbcUtils.closeResource(JdbcUtils.java:78)

at com.itbaizhan.StatementTest.insertUsers(StatementTest.java:31)

at com.itbaizhan.Test.main(Test.java:6)


Process finished with exit code 1


JAVA 全系列/第三阶段:数据库编程/JDBC技术 8288楼

我这边statement的部份一直报错是我少引用了什么吗?

public static void closeStatement(Statement statement){
    try {
        statement.close();
    } catch (SQLException throwables) {
        throwables.printStackTrace();
    }
}



package com.itbaizhan;

import java.io.InputStream;
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.SQLException;
import java.sql.Statement;
import java.util.Properties;

/**
 * Jdbc tool class
 */
public class JdbcUtils {
    private static String url;
    private static String name;
    private static String pwd;
    static {
        try {
            Properties prop = new Properties();
            InputStream is = JdbTest2.class.getClassLoader().getResourceAsStream("jdbc.properties");
            prop.load(is);

            url = prop.getProperty("url");
            name = prop.getProperty("username");
            pwd = prop.getProperty("pwd");
            String drivername = prop.getProperty("driver");

            Class.forName(drivername);
        }catch (Exception e){
            e.printStackTrace();
        }
    }
    //acquire database connection object
    public static Connection getConnection(){
        Connection connection = null;
        try {
            DriverManager.getConnection(url,name,pwd);
        } catch (SQLException e) {
            e.printStackTrace();
        }
        return connection;
    }
    public static void closeConnection(Connection connection){
        try {
            connection.close();
        }catch (SQLException throwables){
            throwables.printStackTrace();
        }

        public static void commit(Connection connection){
            try {
                connection.commit();
            } catch (SQLException throwables) {
                throwables.printStackTrace();
            }
        }
        public static void rollback(Connection connection){
            try {
                connection.rollback();
            } catch (SQLException throwables) {
                throwables.printStackTrace();
            }
        }
        public static void closeStatement(Statement statement){
            try {
                statement.close();
            } catch (SQLException throwables) {
                throwables.printStackTrace();
            }
        }
    }
}


JAVA 全系列/第三阶段:数据库编程/JDBC技术 8289楼
JAVA 全系列/第十一阶段:消息中间件与高并发处理/RocketMQ(旧) 8291楼
JAVA 全系列/第十一阶段:消息中间件与高并发处理/RocketMQ(旧) 8292楼
WEB前端全系列/第二十阶段:Git版本控制器/版本控制器Git与SVN 8293楼
Python 全系列/第八阶段:轻量级Web开发利器-Flask框架/Flask视图高级 8295楼

课程分类

百战程序员微信公众号

百战程序员微信小程序

©2014-2025百战汇智(北京)科技有限公司 All Rights Reserved 北京亦庄经济开发区科创十四街 赛蒂国际工业园
网站维护:百战汇智(北京)科技有限公司
京公网安备 11011402011233号    京ICP备18060230号-3    营业执照    经营许可证:京B2-20212637