JDBCUtils工具类的使用
package util;
import java.io.FileReader;
import java.io.IOException;
import java.net.URL;
import java.sql.*;
import java.util.Properties;
//JDBC工具类(都是静态)
public class JDBCUtils {
//配置文件的读取,使用静态代码
private static String url;
private static String user;
private static String password;
private static String driver;
static {
try {
//读取资源文件,获取值
//Properties集合类
Properties pro = new Properties();
//获取src路径下的文件方式:ClassLoader类加载器
ClassLoader classLoader=JDBCUtils.class.getClassLoader();
URL res=classLoader.getResource("jdbc.properties");
String path=res.getPath();
System.out.println(path);
//加载文件,确定路径
// pro.load(new FileReader(""));
pro.load(new FileReader(path));
//获取数据 赋值
url=pro.getProperty("url");
user=pro.getProperty("user");
password=pro.getProperty("password");
driver=pro.getProperty("driver");
//注册驱动
Class.forName("com.mysql.jdbc.Driver");
}catch (IOException e){
e.printStackTrace();
}catch (ClassNotFoundException e){
e.printStackTrace();
}
}
//获取连接,return连接对象
public static Connection getConnection() throws SQLException{
return DriverManager.getConnection(url,user,password);
}
//释放资源
// 重载对象
public static void close(ResultSet rs,Statement stmt, Connection conn){
//抓异常
if(rs!=null){
try{
rs.close();
}catch (SQLException e){
e.printStackTrace();
}
}
if(stmt!=null){
try{
stmt.close();
}catch (SQLException e){
e.printStackTrace();
}
}
if(conn!=null){
try{
conn.close();
}catch (SQLException e){
e.printStackTrace();
}
}
}
}
新建一个空文件并插入以下代码
url=jdbc:mysql:///jdbctest
user=root
password=root
driver=com.mysql.jdbc.Driver
新建一个class ,
package cn.itcast.jdbc;
import util.JDBCUtils;
import java.sql.*;
import java.util.ArrayList;
import java.util.List;
public class Dem5 {
public static void main(String[] args){
List<EMP> list=new Dem5().findAll();
System.out.println(list);
System.out.println(list.size());//查询对象的行数
}
//查询所有 emp
public List<EMP> findAll() {
Connection conn=null;
Statement stmt=null;
ResultSet rs=null;
List<EMP> list=null;
try {
/*//注册驱动
Class.forName("com.mysql.jdbc.Driver");
//获取连接
conn = DriverManager.getConnection("jdbc:mysql:///jdbctest", "root", "root");
*/
conn=JDBCUtils.getConnection();
//定义sql
String sql = "select * from user";
//获取执行sql的对象
stmt = conn.createStatement();
//执行sql
rs = stmt.executeQuery(sql);
//遍历接结果集,封装对象,装载集合
EMP emp=null;
list=new ArrayList<EMP>();
while (rs.next()) {
//要跟数据库的列名一样
int id = rs.getInt("id");
String name = rs.getString("name");
String pwd = rs.getString("pwd");
String sex = rs.getString("sex");
String home = rs.getString("home");
String info = rs.getString("info");
//创建emp对象并赋值
emp=new EMP();
emp.setId(id);
emp.setName(name);
emp.setPwd(pwd);
emp.setSex(sex);
emp.setHome(home);
emp.setInfo(info);
//装载集合
list.add(emp);
}
} /*catch (ClassNotFoundException e) {
e.printStackTrace();
}*/catch (SQLException e){
e.printStackTrace();
}finally {
//释放资源
/* if(rs!=null){
try{
rs.close();
}catch (SQLException e){
e.printStackTrace();
}
}
if(conn!=null){
try{
conn.close();
}catch (SQLException e){
e.printStackTrace();
}
}
if(stmt!=null){
try{
stmt.close();
}catch (SQLException e){
e.printStackTrace();
}
}*/
JDBCUtils.close(rs,stmt,conn);
}
return list;
}
}
//注册驱动
Class.forName(“com.mysql.jdbc.Driver”);
//获取连接
conn = DriverManager.getConnection(“jdbc:mysql:///jdbctest”, “root”, “root”);
可以将以上代码更改为 conn=JDBCUtils.getConnection();
释放资源也可以更改为 JDBCUtils.close(rs,stmt,conn); 只需这一行代码