Druid的配置和使用
新建个配置文件druid-config.properties
内容如下:
driverClassName=com.mysql.cj.jdbc.Driver
url=jdbc:mysql://localhost:3306/bystart?useSSL=false&useUnicode=true&characterEncoding=UTF-8&serverTimezone=Asia/Shanghai&allowPublicKeyRetrieval=true
username=root
password=root
# 连接池配置
# 初始连接大小 最好把初始连接大小设置和最大连接大小设置一致,提前分配好资源
initialSize=10
# 最大连接大小
maxActive=20
开发Tips:
初始连接大小最好和最大连接大小一致,提前把所有的资源分配好
编写测试类
package com.xmaven;
import com.alibaba.druid.pool.DruidDataSourceFactory;
import com.xmaven.utils.DbUtils;
import javax.sql.DataSource;
import java.io.FileInputStream;
import java.io.FileNotFoundException;
import java.io.IOException;
import java.io.UnsupportedEncodingException;
import java.net.URLDecoder;
import java.sql.Connection;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.util.Properties;
/**
* @ClassName DruidSample
* @Description TODO Druid连接池配置与使用
* @Author Ambition
* @Date 2021/2/5 15:16
* @Version 1.0.0
**/
public class DruidSample {
public static void main(String[] args) {
// 1.加载属性文件
Properties properties = new Properties();
String propertieFile = DruidSample.class.getResource("/druid-config.properties").getPath();
try {
// 空格会被转换成%20 这个操作就是把这个转成原来的格式C:\Program Files\Java 而不是C:\Program%20Files\Java
propertieFile = URLDecoder.decode(propertieFile, "UTF-8");
properties.load(new FileInputStream(propertieFile));
} catch (UnsupportedEncodingException | FileNotFoundException e) {
e.printStackTrace();
} catch (IOException e) {
e.printStackTrace();
}
Connection conn = null;
PreparedStatement pstmt = null;
ResultSet rs = null;
try {
// 2.获取DataSource数据源对象
DataSource dataSource = DruidDataSourceFactory.createDataSource(properties);
// 3. 创建数据库连接
conn = dataSource.getConnection();
pstmt = conn.prepareStatement("select * from user limit 0,10");
rs = pstmt.executeQuery();
while (rs.next()){
Integer id = rs.getInt(1);
String username = rs.getString("username");
String password = rs.getString("password");
Float salary = rs.getFloat("salary");
String dname = rs.getString("dname");
System.out.println(id + "-" + username + "-" + password + "-" + salary + "-" + dname);
}
} catch (Exception e) {
e.printStackTrace();
}finally {
/**
* 不使用连接池:conn.close()关闭连接
* 使用连接池: conn.close()将连接回收到连接池
* */
DbUtils.closeConnection(rs,pstmt,conn);
}
}
}
打开Navicat
评论区