package utils;
import java.io.IOException;
import java.sql.Connection;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.sql.Statement;
import java.util.Properties;
import javax.sql.DataSource;
import com.alibaba.druid.pool.DruidDataSourceFactory;
/**
* Druid数据库快捷连接工具
* @author WanAkiko
*/
public class JDBCUtils {
// 定义DataSource成员变量
private static DataSource ds;
// 为成员变量执行时初始化赋值
static {
try {
Properties properties = new Properties();
properties.load(JDBCUtils.class.getClassLoader().getResourceAsStream("druid.properties"));
// 获取DataSource
ds = DruidDataSourceFactory.createDataSource(properties);
} catch (IOException e) {
e.printStackTrace();
} catch (Exception e) {
e.printStackTrace();
}
}
/**
* 获取连接
*
* @return
* @throws SQLException
*/
public static Connection getConnection() throws SQLException {
return ds.getConnection();
}
/**
* 获取连接池
*
* @return
*/
public static DataSource getDataSource() {
return ds;
}
/**
* 执行DML操作时释放资源的close()方法
*
* @param sta
* @param con
*/
public static void close(Statement sta, Connection con) {
closeAll(null, sta, con);
}
/**
* 执行DQL操作时释放资源的close()方法
*
* @param rs
* @param sta
* @param con
*/
public static void closeAll(ResultSet rs, Statement sta, Connection con) {
if (null != rs) {
try {
rs.close();
} catch (SQLException e) {
e.printStackTrace();
}
}
if (null != sta) {
try {
sta.close();
} catch (SQLException e) {
e.printStackTrace();
}
}
if (null != con) {
try {
con.close(); // 归还连接
} catch (SQLException e) {
e.printStackTrace();
}
}
}
}
JDBC与Druid连接池
最新推荐文章于 2024-07-16 16:26:13 发布