报空指针异常= =
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 | 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 ; } } } |
上面是我编写的工具类
之后是调用的代码
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 | 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积分~
来为老师/同学的回答评分吧