数据库连接池

数据库连接池

数据库连接--执行完毕--释放

连接--释放 十分浪费系统资源

池化技术:准备一些预先的资源,过来就连接预先准备好的

编写连接池,实现一个接口,DataSource

开源数据源实现(拿来即用)

DBCP

C3P0

Druid:阿里巴巴

 

使用了这些数据库连接池之后,我们在项目开发中就不用编写连接数据库的代码了

DBCP

需要用到的jar包

commons-dbcp-1.4、commons-pool-1.6

package com.shushu.lesson05.utils;
?
import org.apache.commons.dbcp.BasicDataSource;
import org.apache.commons.dbcp.BasicDataSourceFactory;
?
import javax.sql.DataSource;
import java.io.IOException;
import java.io.InputStream;
import java.sql.*;
import java.util.Properties;
?
public class JDBCUtils {
   private static DataSource dataSource = null;
?
   static{
?
       try {
           InputStream in = JDBCUtils.class.getClassLoader().getResourceAsStream("dbcpconfig.properties");
           Properties properties = new Properties();
           properties.load(in);
           //创建数据源,工厂模式
           dataSource = BasicDataSourceFactory.createDataSource(properties);
      } catch (IOException e) {
           e.printStackTrace();
      } catch (Exception e) {
           e.printStackTrace();
      }
  }
?
   //获取连接
   public static Connection getConnection() throws SQLException {
      return dataSource.getConnection();//从数据源中获取连接
  }
   //释放连接资源
   public static void release(Connection conn, Statement st, ResultSet rs) throws SQLException {
       if (rs!=null)
           rs.close();
       if (st!=null)
           st.close();
       if (conn!=null)
           conn.close();
  }
}

C3P0

需要用到的jar包

c3p0-0.9.5.5、mchange-commons-java-0.2.19

结论

无论使用什么数据源,本质还是一样的,DataSource接口不会变,方法不会变

 

数据库连接池

上一篇:sql语句实现分页与使用Take和Skip实现分页


下一篇:查询数据库实例名,服务名,和oracle_sid