代码如下
package com.jdb;
import java.sql.Connection;
import java.sql.ResultSet;
import java.sql.Statement;
import org.junit.Test;
import mysqld.JDBCUtils;
public class JDBCUtilsTest {
//测试JDBCUtil类
@Test
public void jdbcConnection() throws Exception {
Connection conn=JDBCUtils.getConnection();
Statement statement = conn.createStatement();
ResultSet result=statement.executeQuery("select * form bank"); //拿到结果集
while(result.next()) {
System.out.println(result.getInt("id"));
}
}
}
在这里加个return
很明显数据库配置有问题,导致获取不到连接对象。
检查一下驱动类的版本和数据库版本是否一致,已经数据库的连接参数等是否正确。
连接类为空 断点看下
数据库成功连接,先检查查询表后有数据么,或者我帮你看看
package mysqld;
//建立连接对象
import java.io.IOException;
import java.sql.Statement;
import java.io.InputStream;
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.util.Properties;
//工具类
public class JDBCUtils {
private static String driver;
private static String ur1;
private static String username;
private static String password;
//静态语句块
static {
// JDBCUtils.class获取对象
//getClassLoader()类加载
//getResourceAsStream("db.properties")加载资源文件放入输入流中
InputStream is = JDBCUtils.class.getClassLoader().getResourceAsStream("db.properties");
//创建Proerty对象的对象
Properties p=new Properties();
//加载流文件
try {
p.load(is);
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
driver=p.getProperty("driver");
ur1=p.getProperty("ur1");
username = p.getProperty("username");
password = p.getProperty("password");
//加载Mysql驱动
try {
Class.forName(driver);
System.out.println("成功加载驱动!");
} catch (Exception e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
//获得连接对象方法
public static Connection getConnection() {
try {
System.out.println("成功连接数据库!");
DriverManager.getConnection(ur1, username, password);
} catch (SQLException e) {
System.out.println("连接数据库失败");
e.printStackTrace();
}
return null;
//释放资源的方法
//public static void close(Connection conn,Statement statement,ResultSet result) {
//if(result!=null) {
//result.close();
//}
//}*/
}
}