1、导入依赖
<dependency><groupId>com.alibaba</groupId><artifactId>druid</artifactId><version>1.2.15</version></dependency>
2、resources下新建druid.properties配置文件
driverClassName=com.mysql.cj.jdbc.Driverurl=jdbc:mysql://localhost:3306/test?allowMultiQueries=true&serverTimezone=Asia/Shanghai&useSSL=falseusername=rootpassword=123456# 初始化连接数量initialSize=5# 最大连接数maxActive=10# 最小空闲连接minIdle=5# 最大等待时间maxWait=3000
3、DruidUtil工具类
import com.alibaba.druid.pool.DruidDataSourceFactory;import javax.sql.DataSource;import java.io.IOException;import java.io.InputStream;import java.sql.Connection;import java.sql.ResultSet;import java.sql.SQLException;import java.sql.Statement;import java.util.Properties;public class DruidUtil {//定义成员变量 DataSource dataSourceprivate static DataSource dataSource;static {Properties properties = new Properties();InputStream inputStream = null;try {inputStream = DruidUtil.class.getClassLoader().getResourceAsStream("druid.properties");properties.load(inputStream);dataSource= DruidDataSourceFactory.createDataSource(properties);} catch (IOException e) {e.printStackTrace();} catch (Exception e) {e.printStackTrace();}finally {try {inputStream.close();} catch (IOException e) {e.printStackTrace();}}}// 获取DataSource对象,给JDBCTemplate提供public static DataSource getDataSource(){return dataSource;}// 获得连接public static Connection getConnection(){Connection connection = null;try {connection = dataSource.getConnection();} catch (SQLException e) {e.printStackTrace();}return connection;}// 关闭资源public static void closeAll(ResultSet resultSet, Statement statement, Connection connection){try {if(resultSet != null){resultSet.close();// 赋值null,gc垃圾回收机制会优先处理resultSet =null;}} catch (SQLException e) {e.printStackTrace();}try {if(statement != null){statement.close();statement=null;}} catch (SQLException e) {e.printStackTrace();}try {if(connection != null){connection.close();connection = null;}} catch (SQLException e) {e.printStackTrace();}}public static void close(Statement statement,Connection connection){try {if(statement != null){statement.close();statement=null;}} catch (SQLException e) {e.printStackTrace();}try {if(connection != null){connection.close();connection = null;}} catch (SQLException e) {e.printStackTrace();}}}
4、测试
public class Test {@Testpublic void test() {Connection conn = DruidUtil.getConnection();PreparedStatement pstmt = null;ResultSet rs = null;try {String testSql = "select id,name from user;";pstmt = conn.prepareStatement(testSql);rs = pstmt.executeQuery();while (rs.next()) {int id = rs.getInt("id");String name = rs.getString("name");System.out.println(id + ":" + name);}} catch (SQLException e) {e.printStackTrace();} finally {DruidUtil.closeAll(rs, pstmt, conn);}}}