jar包下载
Druid的jar包下载
下载后解压,依旧是放在我们之前创建好的myjar
文件夹内
编写配置文件
创建一个名为druid,properties
的文件,依旧将文件保存在resources
的文件夹内(参考:C3P0-基于mysql8创建C3P0连接池(jdbcUrl写法))
druid配置文件内加入以下代码
driverClassName=com.mysql.cj.jdbc.Driver
url=jdbc:mysql://localhost:3306/lianxi01?characterEncoding=UTF-8&useSSL=false&allowPublicKeyRetrieval=true&serverTimezone=UTC&rewriteBatchedStatements=true
username=root
password=316426
initialSize=5
maxActive=10
maxWait=3000
类似的,其中lianxi01
是我的数据库,需要改成自己的password
也需要改成自己的密码
编写工具类
配置文件写好之后,接下来就是编写工具类
目的是将连接数据库 / 获取连接 等代码封装在类中,后面直接调用这个类就可以
package utils;
import com.alibaba.druid.pool.DruidDataSourceFactory;
import javax.sql.DataSource;
import java.io.InputStream;
import java.sql.Connection;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.sql.Statement;
import java.util.Properties;
/**
* 项目描述: 编写数据库Druid连接池的工具类代码
*/
public class DruidUtils {
// 1。定义成员变量
public static DataSource dataSource;
// 2。读取配置文件
// Druid不能主动获取配置文件,需要使用反射机制与配置文件建立关联
static {
try {
// 2.1 创建Properties类型对象
Properties properties = new Properties();
// 2.2 将配置文件读取入输入流中
InputStream inputstream = DruidUtils.class.getClassLoader().getResourceAsStream("druid.properties");
// 2.3 使用Properties类型对象的load()方法加载输入流中的信息
properties.load(inputstream);
// 2.4 将Properties类型的对象作为参数传递
dataSource = DruidDataSourceFactory.createDataSource(properties);
} catch (Exception e) {
e.printStackTrace();
}
}
// 3。获取连接
public static Connection getConnection(){
try {
return dataSource.getConnection();
} catch (SQLException throwables) {
throwables.printStackTrace();
return null;
}
}
// 番外:返回一个数据连接池DataSource类型的对象
public static DataSource getDataSource(){
return dataSource;
}
// 4。关闭对象,释放资源
public static void close(Connection connection, Statement statement){
if(null != connection && null != statement){
try {
statement.close();
connection.close();
} catch (SQLException throwables) {
throwables.printStackTrace();
}
}
}
public static void close(Connection connection, Statement statement, ResultSet resultSet){
if(null != connection && null != statement && null != resultSet){
try {
resultSet.close();
statement.close();
connection.close();
} catch (SQLException throwables) {
throwables.printStackTrace();
}
}
}
}