public class dbConn { public dbConn() { try { jbInit(); } catch (Exception e) { e.printStackTrace(); } } private Statement conn() { try { // 加载驱动 Class.forName("com.mysql.jdbc.Driver"); // 数据库名称,管理员账号、密码 String url = "jdbc:mysql://localhost:3306/test"; String user = "root"; String pwd = "123456789"; // 连接 Connection con = null; con = DriverManager.getConnection(url, user, pwd); Statement stat = con.createStatement(); return stat; } catch (ClassNotFoundException ex) { return null; } catch (SQLException ex1) { return null; } } // 查询数据库 public ResultSet getRs(String sql) { try { Statement stat = conn(); ResultSet rs = stat.executeQuery(sql); System.out.println(rs); return rs; } catch (SQLException ex) { System.err.println("------------" + ex.getMessage()); return null; } } // 更新数据库 public int getUpdate(String sql) { try { Statement stat = conn(); int i = stat.executeUpdate(sql); return i; } catch (Exception ex) { System.out.println(">>>>>>>>" + ex.getMessage()); return -1; } } private void jbInit() throws Exception { conn(); } }代码报错java.lang.NullPointerException: Cannot invoke "java.sql.Statement.executeQuery(String)" because "stat" is null
时间: 2023-06-20 18:05:36 浏览: 131
dbconn-开源
这个错误是因为在执行查询语句时,可能出现了连接数据库失败的情况,导致 `conn()` 函数返回了 `null`,所以在 `getRs(String sql)` 函数中执行 `stat.executeQuery(sql)` 时,会抛出 `NullPointerException` 异常。你可以在 `conn()` 函数中增加一些调试信息,找出具体的原因,比如输出连接数据库的 URL、用户名和密码等。同时,建议在使用完数据库连接之后,显式地关闭连接,避免数据库连接过多而导致的性能问题。
阅读全文