您当前的位置: 首页 > 慢生活 > 程序人生 网站首页程序人生
14_JDBC工具类(从配置文件中加载数据库配置)
发布时间:2022-07-17 23:32:44编辑:雪饮阅读()
本节主要能学到的新知识点就是静态代码块的应用场景以及配置文件路径的最佳获取方式。
实现目标是对上篇中数据库模型中获取连接connect还需要用数据库套接字以及用户名和密码的方式,这样每个模型都要这样做,很不专业,一般来说这种应该是通过配置文件获取才对。
首先src目录下建立一个配置文件jdbc.properties:
url=jdbc:mysql:///test
user=root
password=root
然后咱们的jdbc实现工具类JDBCUtil.java:
package day5;
import java.io.InputStream;
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.ResultSet;
import java.sql.Statement;
import java.util.Properties;
public class JDBCUtil {
private static String url;
private static String user;
private static String password;
//静态代码块的好处,使用本静态类,这里只加载一次,可以友好这里加载配置文件(io操作)太过频繁
static{
try{
Properties pro=new Properties();
//从src下获取一个资源文档的友好方式
InputStream is =JDBCUtil.class.getClassLoader().getResourceAsStream("jdbc.properties");
pro.load(is);
url=pro.getProperty("url");
user=pro.getProperty("user");
password=pro.getProperty("password");
}
catch(Exception e){
e.printStackTrace();
}
}
public static Connection getConnection(){
Connection conn=null;
try{
conn=DriverManager.getConnection(url,user,password);
}
catch(Exception e){
e.printStackTrace();
}
return conn;
}
public static void close(Statement stmt,Connection conn){
//这里Statement和Connection的释放为什么要用两个try?岂不是很麻烦?
//不,如果直接一个try,则有可能stmt有异常,则conn得不到释放了
if(stmt!=null){
try{
stmt.close();
}
catch(Exception e){
e.printStackTrace();
}
}
if(conn!=null){
try{
conn.close();
}
catch(Exception e){
e.printStackTrace();
}
}
}
//有结果集时候,可以有结果集释放的对应重载
public static void close(Statement stmt, ResultSet rs, Connection conn){
if(rs!=null){
try{
rs.close();
}
catch(Exception e){
e.printStackTrace();
}
}
if(stmt!=null){
try{
stmt.close();
}
catch(Exception e){
e.printStackTrace();
}
}
if(conn!=null){
try{
conn.close();
}
catch(Exception e){
e.printStackTrace();
}
}
}
}
那么接下来就是可以优化我们上篇中写的T4Model.java的模型了:
package day5;
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.ResultSet;
import java.sql.Statement;
import java.util.ArrayList;
import java.util.List;
//T4模型
public class T4Model {
public static List<T4> findAll(){
List t4lst=null;
Connection conn=null;
Statement stmt=null;
ResultSet rs=null;
try {
conn= JDBCUtil.getConnection();
String sql="select * from t4";
stmt=conn.createStatement();
rs=stmt.executeQuery(sql);
t4lst=new ArrayList<T4>();
while (rs.next()){
int id=rs.getInt(1);
String name=rs.getString("name");
Double balance=rs.getDouble("balance");
T4 t4= new T4();
t4.setId(id);
t4.setName(name);
t4.setBalance(balance);
t4lst.add(t4);
}
}
catch (Exception e){
e.printStackTrace();
}
finally {
JDBCUtil.close(stmt,rs,conn);
}
return t4lst;
}
}
关键字词:jdbc,配置,文件,静态,代码,块
相关文章
- 13_JDBC练习_select语句(通过实体类用泛型封装到集合)
- 11_JDBC各个类详解_ResultSet_基本使用
- 08_JDBC练习_insert语句
- 05_JDBC各个类详解_DriverManager_获取数据库连接
- 04_JDBC各个类详解_DriverManager_注册驱动(mysql连接
- 03_JDBC_快速入门(连接mysql并执行一个update的sql语
- js将网页转换成pdf文件流并上传到服务器
- webman-配置數據庫-使用多個數據庫(數據庫切換)
- webman-配置數據庫-webman中postgresql的配置使用
- webman-配置數據庫-pdo_pgsql擴展安裝(php7.3.4)