一、导入jar包
druid-1.0.9.jar//druid数据库连接池包
mysql-connector-java-8.0.26.jar//数据库连接的包
二、配置文件(xxx.properties)可以存放在任意位置(c3p0只能放在src下,名称只能为c3p0.properties或者c3p0-config.xml)
driverClassName=com.mysql.cj.jdbc.Driver
url=jdbc:mysql:///db3
username=root
password=123456
//初始化连接数目
initialSize=5
//最大连接数目
maxActive=10
//最长等待时间
maxWait=3000
三、加载配置文件(通过DruidDataSourceFactory来获取)
properties.load(JdbcUtils.class.getClassLoader().getResourceAsStream("druid.properties"));
四、获取连接
dataSource = DruidDataSourceFactory.createDataSource(properties);
五、执行SQL语句
Connection connection = JdbcUtils.getConnection();
PreparedStatement ppre = connection.prepareStatement("insert into role values (null,?,?,?)");
ppre.setString(1,"Alsa");
ppre.setString(2,"冰雪女王");
ppre.setString(3,"y");
ppre.executeUpdate();
六、归还连接到连接池(用close方法实则是归还到连接池中)
conn.close();
JdbcUtils代码
package cn.itcast.util;
import com.alibaba.druid.pool.DruidDataSource;
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 JdbcUtils {
private static DataSource dataSource;
//初始化
static {
Properties properties = new Properties();
try {
properties.load(JdbcUtils.class.getClassLoader().getResourceAsStream("druid.properties"));
dataSource = DruidDataSourceFactory.createDataSource(properties);
} catch (IOException e) {
e.printStackTrace();
} catch (Exception e) {
e.printStackTrace();
}
}
//获取连接
public static Connection getConnection() throws SQLException {
return dataSource.getConnection();
}
//归还连接到连接池中
public static void close(Statement statement,Connection connection){
close(null,statement,connection);
}
//归还连接到连接池中
public static void close(ResultSet resultSet,Statement statement,Connection connection){
if(resultSet!=null){
try {
resultSet.close();
} catch (SQLException e) {
e.printStackTrace();
}
}
if(statement!=null){
try {
statement.close();
} catch (SQLException e) {
e.printStackTrace();
}
}
if(connection!=null){
try {
connection.close();
} catch (SQLException e) {
e.printStackTrace();
}
}
}
//获取连接池对象
public static DataSource getDataSource(){
return dataSource;
}
}