报空指针异常= =
package com.jdbc; import java.sql.DriverManager; import java.sql.ResultSet; import java.sql.SQLException; import java.sql.Statement; import java.util.Properties; import java.io.IOException; import java.io.InputStream; import java.sql.Connection; public class JDBCUntil { //采用属性文件对下面的变量赋值 private static final String driverClass; private static final String url; private static final String username; private static final String password; static { //加载属性文件并解析 Properties props=new Properties(); InputStream is=JDBCUntil.class.getClassLoader().getResourceAsStream("jdbc.properties"); try { props.load(is); } catch (IOException e) { // TODO Auto-generated catch block e.printStackTrace(); } driverClass=props.getProperty("driverClass"); url=props.getProperty("url"); username=props.getProperty("username"); password=props.getProperty("password"); } //注册驱动方法 public static void loadDriver() throws ClassNotFoundException { Class.forName(driverClass); } //获得连接的方法 public static Connection getConnection() { try { loadDriver(); } catch (ClassNotFoundException e) { // TODO Auto-generated catch block e.printStackTrace(); } Connection conn = null; try { conn = DriverManager.getConnection(url,username,password); } catch (SQLException e) { // TODO Auto-generated catch block e.printStackTrace(); } return conn;} //释放空间两种方法 public static void release(Statement stmt,Connection conn) { if(stmt!=null) { try { stmt.close(); } catch (SQLException e) { // TODO Auto-generated catch block e.printStackTrace(); } stmt=null; } if(conn!=null) { try { conn.close(); } catch (SQLException e) { // TODO Auto-generated catch block e.printStackTrace(); } conn=null; } } public static void release(Statement stmt,Connection conn,ResultSet result) { if(result!=null) { try { result.close(); } catch (SQLException e) { // TODO Auto-generated catch block e.printStackTrace(); } result=null; } if(stmt!=null) { try { stmt.close(); } catch (SQLException e) { // TODO Auto-generated catch block e.printStackTrace(); } stmt=null; } if(conn!=null) { try { conn.close(); } catch (SQLException e) { // TODO Auto-generated catch block e.printStackTrace(); } conn=null; } } }
上面是我编写的工具类
之后是调用的代码
package com.jdbc; import java.sql.Connection; import java.sql.ResultSet; import java.sql.Statement; public class Jdbcuntildemo { public static void main(String[] args) throws Exception { // TODO Auto-generated method stub JDBCUntil ju=new JDBCUntil(); //1.获取连接,并加载驱动 Connection conn= ju.getConnection(); //2.获取操作语句 String sql="select * from user"; Statement stmt=conn.createStatement(); ResultSet result=stmt.executeQuery(sql); if(result.next()) { System.out.println(result.getObject("userid")+" "+result.getObject("password")); } ju.release(stmt, conn, result); } }
附上属性文档
drivaerClass=com.mysql.jdbc.Driver
url=jdbc:mysql:///jdbctest
username=root
password=123456
结果报空指针异常= =,会不会是读取属性文件的时候出错了呢?但是没有发现哪里有错误啊
1
收起
正在回答 回答被采纳积分+1
2回答
Java数据库开发与实战应用2018版
- 参与学习 人
- 提交作业 277 份
- 解答问题 4297 个
Java数据库开发的必备技能,从流行的MySQL数据库开始,到Java原生的数据库管理接口JDBC的使用,再到常用的数据持久化框架MyBatis,让你向Java工程师的目标又迈进了一步!
了解课程
恭喜解决一个难题,获得1积分~
来为老师/同学的回答评分吧
0 星