weixin_53249456 2021-09-14 16:58 采纳率: 75%
浏览 320
已结题

用idea连接mysql时,出现.NullPointerException异常

这是工具类:

img

private static String driver = null;
private static String url = null;
private static String username = null;
private static String password = null;

static{
    try{
        InputStream in = jdbcUtils.class.getClassLoader().getResourceAsStream("db.properties");
        Properties properties = new Properties();
        properties.load(in);

        driver = properties.getProperty("name");
        url = properties.getProperty("url");
        username = properties.getProperty("username");
        password = properties.getProperty("password");

        //1.驱动只用加载一次
        Class.forName(driver);

    } catch (Exception e) {
        e.printStackTrace();
    }
}

//获取连接
public static Connection getConnection() throws SQLException {
    return DriverManager.getConnection(url,username,password);
}
//释放连接资源
public static void release(Connection conn, Statement st, ResultSet rs){
    if(rs != null){
        try {
            rs.close();
        } catch (SQLException throwables) {
            throwables.printStackTrace();
        }
    }
    if(st != null){
        try {
            st.close();
        } catch (SQLException throwables) {
            throwables.printStackTrace();
        }
    }
    if(conn != null){
        try {
            conn.close();
        } catch (SQLException throwables) {
            throwables.printStackTrace();
        }
    }
}

配置文件db.properties:
driver=com.mysql.jdbc.Driver
url=jdbc:mysql://localhost:3306/jdbcstudy?useUnicode=true&characterEncoding=utf8&useSSL=true
username=root
password=123456

实现代码:
public static void main(String[] args) {

    Connection conn = null;
    Statement st = null;
    ResultSet rs = null;
    try {
        conn = jdbcUtils.getConnection();//获取数据库连接
        st = conn.createStatement();//获得SQL的执行对象
        String sql = "INSERT INTO users(id,`name`,`password`,`email`,`birthday`)" +
                "VALUES(4,'ding','123456','123456789@qq.com','1990-12-28')";
        int i = st.executeUpdate(sql);
        if(i > 0){
            System.out.println("插入成功");
        }
    } catch (SQLException e) {
        e.printStackTrace();
    } finally {
        jdbcUtils.release(conn,st,rs);
    }
}

然后就是db.properties的位置,在src目录下

img

我找不出问题,但是有空指针异常

img

但是在sqlyog中看到数据确实插入成功了

img

展开全部

  • 写回答

1条回答 默认 最新

  • Roc-xb 后端领域优质创作者 2021-09-14 20:24
    关注

    driver = properties.getProperty("name");
    改成
    driver = properties.getProperty("driver")

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论
编辑
预览

报告相同问题?

问题事件

  • 系统已结题 9月22日
  • 已采纳回答 9月15日
  • 创建了问题 9月14日

悬赏问题

  • ¥30 silcavo仿真,30分钟,只需要代码
  • ¥15 FastReport 怎么实现打印后马上关闭打印预览窗口
  • ¥15 利用3支股票数据估计其均值和方差的95%置信区间。
  • ¥15 微信小程序运行一项功能时,弹出未知错误弹框,检查代码没有问题
  • ¥15 ATAC测序生成self-pseudo replicates之前是否要进行去线粒体reads
  • ¥15 python模糊字匹配函数问题
  • ¥20 谁刷目标页面的uv记录器上数据,数据只记录跳转的数值
  • ¥30 数据库软件的安装方法
  • ¥15 一道以太网数据传输题
  • ¥15 python 下载群辉文件
手机看
程序员都在用的中文IT技术交流社区

程序员都在用的中文IT技术交流社区

专业的中文 IT 技术社区,与千万技术人共成长

专业的中文 IT 技术社区,与千万技术人共成长

关注【CSDN】视频号,行业资讯、技术分享精彩不断,直播好礼送不停!

关注【CSDN】视频号,行业资讯、技术分享精彩不断,直播好礼送不停!

客服 返回
顶部