配置文件,创建一个文件名,文件后缀名需要为"properities",
再创一个java class的文件当作工具类
import java.io.FileReader;
import java.io.IOException;
import java.net.URL;
import java.sql.*;
import java.util.Properties;
/*
JDBC工具类
*目的:简化书写
*分析:1、注册驱动也抽取
2、抽取一个方法获取连接对象
需求:不想传递参数(麻烦),还得保证工具类的通用性
解决:配置文件,创建一个文件名,文件后缀名需要为"properities"
driverClass=com.mysql.jdbc.Driver
url=
user=
passwrod=
*/
public class JDBCUtils {
private static String url;
private static String user;
private static String password;
private static String driver;
//文件的读取,只需读取一次即可拿到这些值,使用静态代码块
static{
//读取文件,获取值
//1.创建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);
//2.加载文件
try {
pro.load(new FileReader(path));
} catch (IOException e) {
e.printStackTrace();
}
try {
pro.load(new FileReader("src/jdbc.properties"));
//3.获取数据,赋值
url=pro.getProperty("url");
user=pro.getProperty("user");
password=pro.getProperty("password");
driver=pro.getProperty("driver");
//4.注册驱动
Class.forName(driver);
} catch (IOException | ClassNotFoundException e) {
e.printStackTrace();
}
}
//获取连接对象
public static Connection getConnection() throws SQLException {
return DriverManager.getConnection("jdbc:mysql:///hsp_db02","root","011012");
}
public static void close(ResultSet rs, Statement stm, Connection con){
//资源释放
if(stm !=null){
try {
stm.close();
} catch (SQLException throwables) {
throwables.printStackTrace();
}
}if(con !=null){
try {
con.close();
} catch (SQLException throwables) {
throwables.printStackTrace();
}
}if(rs !=null){
try {
rs.close();
} catch (SQLException throwables) {
throwables.printStackTrace();
}
}
}
}
展示 效果
import java.sql.*;
import java.util.ArrayList;
import java.util.List;
/*
练习:
JDBC工具的演示
*/
import java.sql.*;
import java.util.ArrayList;
import java.util.List;
/*
练习:
查询emp表的数据将其封装成对象,然后装在集合,返回
*/
public class JDBC09 {
/*
查询所有emp对像
*/
public static void main(String[] args) throws SQLException {
List<Emp> list = new JDBC08().finfAll();
System.out.println(list);
}
public List<Emp> finfAll2() throws SQLException {
Connection con = null;
Statement s = null;
ResultSet rs = null;
List<Emp> list = null;
try {
// //1.注册驱动
// Class.forName("com.mysql.cj.jdbc.Driver");
// //2.获取链接
// con = DriverManager.getConnection("jdbc:mysql:///hsp_db02", "root", "011012");
con = JDBCUtils.getConnection();
//3.定义sql语句
String sql = "select * from emp";
//4.获取执行sql对象
s = con.createStatement();
//5.执行sql语句
rs = s.executeQuery(sql);
//6.遍历结果,封装对象,装在集合
Emp emp = null;
list = new ArrayList<Emp>();
while (rs.next()) {
//获取数据
int id = rs.getInt("id");
String name = rs.getString("name");
int job_id = rs.getInt("job_id");
double salary = rs.getDouble("salary");
//创建emp对象,并赋值
emp = new Emp();
emp.setId(id);
emp.setJob_id(job_id);
emp.setName(name);
emp.setSalary(salary);
//装在集合
list.add(emp);
}
} finally {
// if (con != null) {
// con.close();
// }
// }
// if (s != null) {
// s.close();
// }
// if (rs != null) {
// rs.close();
// }
// return null;
// }
JDBCUtils.close(rs, s, con);
return null;
}
}
}