报空指针异常= =
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 星