一、资源准备
1、 mysql-connector-java-8.0.23.jar 数据库链接包 druid-1.2.8.jar 连接池包
2、测试包
junit-4.11.jar、hamcrest-core-1.3.jar
二、连接配置
1、创建项目
2、加载资源包
3、编写数据库工具类
文件路径 src/main/java/com/zxp/utils/JdbcUtils.java
package com.zxp.utils;
import com.alibaba.druid.pool.DruidDataSource;
import com.alibaba.druid.pool.DruidDataSourceFactory;
import java.io.InputStream;
import java.sql.Connection;
import java.sql.SQLException;
import java.util.Properties;
public class JdbcUtils {
private static DruidDataSource dataSource;
static {
try {
Properties properties = new Properties();
//jdbc.properties文件 属性;jdbc.properties是配置数据库连接的文件
InputStream resourceAsStream = JdbcUtils.class.getResourceAsStream("/jdbc.properties");
//从流中加载数据
properties.load(resourceAsStream);
//创建数据库连接池
dataSource = (DruidDataSource) DruidDataSourceFactory.createDataSource(properties);
//System.out.println(dataSource.getConnection());
} catch (Exception e) {
e.printStackTrace();
}
}
public static void main(String[] args) {
}
/**
* 获取数据连接池中的连接
* @return 如果返回null 则获取数据库连接失败
*/
public static Connection getConnection(){
Connection conn = null;
try {
conn =dataSource.getConnection();
} catch (Exception throwables) {
throwables.printStackTrace();
}
return conn;
}
/**
* 关闭连接,放回数据库连接池
* @param conn
*/
public static void close(Connection conn){
if (conn!=null){
try {
conn.close();
} catch (SQLException throwables) {
throwables.printStackTrace();
}
}
}
}
4、测试
文件路径 src/main/java/com/zxp/test/JdbcUtilsTest.java
package com.zxp.test;
import com.zxp.utils.JdbcUtils;
import org.junit.Test;
public class JdbcUtilsTest {
@Test
public void testJdbcUtils(){
for( int i=1;i<15;i++){
System.out.println(JdbcUtils.getConnection());
}
}
}
4、配置文件
路径 :src/main/resources/jdbc.properties
注意:新版IDEA jdbc.properties 文件要放在 src/main/resources文件下
#druid文件配置,MySQL版本8.0.28,druid版本1.2.8
driverClassName = com.mysql.cj.jdbc.Driver
#url = jdbc:mysql://localhost:3306/数据库名?useUnicode=true&characterEncoding=utf-8&userSSL=false&serverTimezone=GMT%2B8
username=root
password=123456
#初始连接数量
initialSize = 6
#最大连接数
maxActive = 10
#最大超时时间
maxWait = 3000
三、目录结构