数据库连接池

摘要:
连接池本质上是一组java架包,介于java应用程序与JDBC数据库物理链接之间,帮助应用程序管理链接。通过连接池预先同数据库建立一些连接放在内存中,应用程序需要建立数据库连接时直接到从接池中申请一个连接使用,用完后由连接池回收该连接,从而达到连接复用,减少资源消耗的目的。DBCP连接池:DBCP数据库连接池是apache上的一个Java连接池项目。

连接池本质上是一组java架包,介于java应用程序与JDBC数据库物理链接之间,帮助应用程序管理链接。

通过连接池预先同数据库建立一些连接放在内存中(即连接池中),应用程序需要建立数据库连接时直接到从接池中申请一个连接使用,用完后由连接池回收该连接,从而达到连接复用,减少资源消耗的目的。

数据库连接池第1张

DBCP连接池:DBCP(DataBase connection pool)数据库连接池是 apache 上的一个Java连接池项目。

需要的jar包:commons-dbcp.jar,commons-pool.jar,commons-logging.jar

1.创建连接池对象

数据库连接池第2张

2.获取数据连接

3.释放数据连接(将连接归还连接池)

高级配置:

1.setInitialSize()  :预置一定数量连接,保证第一次连接速度

2.setMaxTotall()  :连接最大值

3.setsetMaxWaitMillis() :设置最长等待时间

4.setMaxIdle()  :最多空闲连接数

5.setMinIdle()  :最少空闲连接数

6.空闲关闭

数据库连接池第3张

packagecom.tao.DBCP.test;

importjava.sql.Connection;
importjava.sql.ResultSet;
importjava.sql.SQLException;
importjava.sql.Statement;

importorg.apache.commons.dbcp.BasicDataSource;


public classDBCPtest {
    public final static String DRIVE_NAME="com.mysql.jdbc.Driver";
    public final static String USER_NAME="root";
    public final static String PASSWORD="admin";
    public final static String DB_URL="jdbc:mysql://localhost:3306/schoolweb?useUnicode=true&characterEncoding=utf8";
    public staticBasicDataSource ds;
    
    public static voiddbpoolInit(){
        ds=newBasicDataSource();
        ds.setUrl(DB_URL);
        ds.setDriverClassName(DRIVE_NAME);
        ds.setPassword(PASSWORD);
    }

    public voiddbPollTest() {
        Connection conn = null;
        Statement stmt = null;
        ResultSet rs = null;

        try{
            conn =ds.getConnection();
            stmt =conn.createStatement();
            rs = stmt.executeQuery("select * from schoolweb");
            while(rs.next()) {
                System.out.println(rs.getString("name"));
            }
        } catch(SQLException e) {
            e.printStackTrace();
        } finally{
            try{
                if (conn != null)
                    conn.close();
                if (stmt != null)
                    stmt.close();
                if (rs != null)
                    rs.close();
            } catch(SQLException e) {
                e.printStackTrace();
            }
        }
    }
    public static voidmain(String[] args){
        dbpoolInit();
        newDBCPtest().dbPollTest();
    }
    
}

免责声明:文章转载自《数据库连接池》仅用于学习参考。如对内容有疑问,请及时联系本站处理。

上篇mac的一些基本设置(分享篇)fastjson如何指定字段不序列化下篇

宿迁高防,2C2G15M,22元/月;香港BGP,2C5G5M,25元/月 雨云优惠码:MjYwNzM=

相关文章

现在主流的开源java连接池

现在主流的开源java连接池: 在Java中开源的数据库连接池有以下几种 :1, C3P0 C3P0是一个开放源代码的JDBC连接池,它在lib目录中与Hibernate[1]一起发布,包括了实现jdbc3和jdbc2扩展规范说明的Connection 和Statement 池的DataSources 对象。C3P0:http://sourceforge....

springcloud-服务发现Discovery

  服务发现是指:服务或其他程序可以去获取注册中心上的注册信息   eureka提供了实现服务发现的API,具体操作如下: @Autowired private DiscoveryClient discoveryClient; @GetMapping("/payment/getServices") public void g...

ngx_lua 随笔

--[[ test--]]ngx.header.content_type = "text/plain"; --输出头部local user = ngx.var.arg_user -- 定义user变量并获取url中的参数 http://localhost?user=hellolocal sys = ngx.var.server_name -- 获取ngi...

python连接mysql并进行增删改查操作

查询了菜鸟教程以及博客园等各种文章,有修改完善 转载自https://www.cnblogs.com/yuhou/p/10893056.html 自己完善部分: python连接mysql使用连接池: 一、为什么要用连接池? 1、数据库 本身有压力,并不能创建太多的并发数访问数据库,如果是大表那更加会有压力,因此限制一定的连接是更加科学的方法。2、创建和释...

Soap流程

首先本文不对SOAP有过多的解释,你只需知道它是--简单对象访问协议,一种轻量的、简单的、基于 XML 的协议。举个例子,WebService其实就基于SOAP的。 再简单的说一下,SOAP就是打包-->发送-->收包-->处理-->返回包等一系列流程,在ASP.NET中可以使用MSXML2中的XMLHTTPClass类来创建SOA...

File类。

File类: java.io.File 类。是文件和文件夹目录名的抽象表示形式。 可以用File对文件和文件夹进行 创建,删除,获取等操作。 File类的一些静态成员变量:   static String pathSeparator :路径分隔符, Windows:分号 Linux:冒号。   static String separator :文件名称分隔...