Druid 连接池的使用

1,087 阅读1分钟

首先导入druid的jar包

Druid的配置文件和c3p0不同,是properties类型的,名字可以随便取,相同的是也要放到源文件夹下

如下是简单的配置信息

       driverClassName=com.mysql.cj.jdbc.Driver
       url=jdbc:mysql://localhost:3306/demobase?useSSL=false&serverTimezone=GMT
       username=root
       password=dong
       #//属性类型的字符串,通过别名的方式配置扩展插件, 监控统计用的stat 日志用log4j 防御sql注入:wall
       filters=stat
       initialSize=2
       maxActive=300
       maxWait=60000

想查看具体的配置信息可以查看这个文章

新建DruidUtil工具类

public class DruidUtil {
   //连接池
   static DataSource dataSource;
   //读取配置信息的io
   static Properties properties = new Properties();
   static {
       //JDBCUtil.class.getClassLoader()是获得JDBCUtil类的类加载器
       //返回一个读取指定资源的输入流
       InputStream is = JdbcUtils.class.getClassLoader().getResourceAsStream("durid.properties");
       try {
           properties.load(is);
           dataSource = (DruidDataSource) DruidDataSourceFactory.createDataSource(properties);
       }catch (Exception e){
           e.printStackTrace();
       }
   }
   //获取连接
   public static Connection getConnection() throws SQLException {
       return dataSource.getConnection();
   }
   //释放资源
   public static void close(Connection conn, Statement ps, ResultSet rs){
       try {
           if (rs != null){
               rs.close();
               rs = null;
           }
       } catch (SQLException e) {
           e.printStackTrace();
       }
       try {
           if (ps != null){
               ps.close();
               ps = null;
           }
       } catch (SQLException e) {
           e.printStackTrace();
       }
       try {
           if (conn != null){
               conn.close();
               conn = null;
           }
       } catch (SQLException e) {
           e.printStackTrace();
       }
   }
}

测试代码

public class Test2 {
   public static void main(String[] args) throws SQLException {
       Connection connection = DruidUtil.getConnection();
       PreparedStatement ps = connection.prepareStatement("insert into t_user values (null ,?,?)");
       ps.setString(1,"TOM4");
       ps.setString(2,"abc");
       ps.executeUpdate();

       DruidUtil.close(connection,ps,null);
   }
}