数据库连接池Druid的工具类

定义Druid的工具类

使用步骤:
1. 导入druid的jar包;

<dependency>
<groupId>com.alibaba</groupId>
<artifactId>druid</artifactId>
<version>1.1.16</version>
</dependency>

2. 编写druid的配置文件properties;

driverClassName=com.mysql.cj.jdbc.Driver
url=jdbc:mysql://127.0.0.1:3306/dbName?useSSL=false&serverTimezone=Asia/Shanghai&characterEncoding=UTF-8
username=root
password=1234
# 初始化连接数量
initialSize=5
# 最大连接数量
maxActive=50
# 获取连接的最大等待时间(毫秒)
maxWait=5000

3. 导入配置文件,获取数据库连接池对象.

import com.alibaba.druid.pool.DruidDataSourceFactory;
import javax.sql.DataSource;
import java.io.IOException;
import java.sql.Connection;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.sql.Statement;
import java.util.Properties;
public class DruidUtils {
private static DataSource ds;
static {
try {
Properties prop = new Properties();
//加载properties配置文件
prop.load(DruidUtils.class.getClassLoader().getResourceAsStream("druid.properties"));
//获取数据库连接池对象
ds = DruidDataSourceFactory.createDataSource(prop);
} catch (IOException e) {
e.printStackTrace();
} catch (Exception e) {
e.printStackTrace();
}
}
public static Connection getConn() throws SQLException {
return ds.getConnection();
}
//归返数据库连接到数据库连接池
public static void close(Connection conn, Statement stat, ResultSet rs) {
try {
if (rs != null) {
rs.close();
}
if (stat != null) {
stat.close();
}
if (conn != null) {
conn.close();
}
} catch (SQLException e) {
e.printStackTrace();
}
}
//连接测试
public static void main(String[] args) throws SQLException {
System.out.println(DBUtils.getConn());
}
}

Druid的正常实现(不使用工具类)

public class DruidDemo {
public static void main(String[] args) throws Exception {
Properties properties = new Properties();
InputStream is = DruidDemo.class.getClassLoader().getResourceAsStream("druid.properties");
properties.load(is);
DataSource dataSource = DruidDataSourceFactory.createDataSource(properties);
Connection conn = dataSource.getConnection();
System.out.println(conn);
}
}
posted @   lichuanjiang  阅读(116)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· Manus爆火,是硬核还是营销?
· 终于写完轮子一部分:tcp代理 了,记录一下
· 别再用vector<bool>了!Google高级工程师:这可能是STL最大的设计失误
· 单元测试从入门到精通
· 震惊!C++程序真的从main开始吗?99%的程序员都答错了
点击右上角即可分享
微信分享提示