package com.wangjue.util;
import java.io.IOException;
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.util.Properties;
public class DBUtil {
private static Connection conn = null;
private static Properties pro = new Properties();
//加载驱动,使用静态块,只需要加载一次
static {
try {
/**
* 加载配置文件的两种方法,任选一种都可以
*/
//pro.load(DBUtil.class.getResourceAsStream("/DBUtil.properties"));
pro.load(DBUtil.class.getClassLoader().getResourceAsStream("DBUtil.properties"));
String DRIVER = pro.getProperty("DRIVER");
Class.forName(DRIVER);
} catch (IOException e) {
e.printStackTrace();
} catch (Exception e) {
e.printStackTrace();
}
}
//获取Connection连接对象的方法,使用static方便之后在其他类中调用
public static Connection getConn() {
try {
conn = DriverManager.getConnection(
pro.getProperty("URL"),
pro.getProperty("USER"),
pro.getProperty("PWD"));
} catch (SQLException e) {
e.printStackTrace();
}
return conn;
}
//关闭资源的方法
public static void close(ResultSet rs,PreparedStatement ps,Connection conn) {
if(rs!=null) {
try {
rs.close();
} catch (SQLException e) {
e.printStackTrace();
}
}
if(ps!=null) {
try {
ps.close();
} catch (SQLException e) {
e.printStackTrace();
}
}
if(conn!=null) {
try {
conn.close();
} catch (SQLException e) {
e.printStackTrace();
}
}
}
}
总结:
1、创建一个这样的工具类,可以做为dao层使用,用类名.方法名直接调用
2、加载配置文件时ClassLoader.getResourceAsStream() 与 Class.getResourceAsStream()的区别
pro.load(DBUtil.class.getResourceAsStream("/DBUtil.properties"))
ClassLoader.getResourceAsStream() 无论要查找的资源前面是否带'/' 都会从classpath的根路径下查找
pro.load(DBUtil.class.getClassLoader().getResourceAsStream("DBUtil.properties"))
本文介绍了一个用于简化Java数据库操作的DBUtil工具类。该类通过加载配置文件实现数据库连接参数的外部化管理,并提供了获取数据库连接及关闭资源的方法。文章还对比了使用Class.getResourceAsStream与ClassLoader.getResourceAsStream加载配置文件的不同。
1169

被折叠的 条评论
为什么被折叠?



