【知了堂学习笔记】c3p0连接池

来源:互联网 发布:域名备案流程 编辑:程序博客网 时间:2024/04/29 17:14

一、 JDBC

 1、 在进行Javaweb的开发过程中,需要对数据库进行操作,在程序中就要连接数据库,

1、建立会话连接,

2、编写sql语句,对sql语句进行操作,

3、断开连接,

 2、 普通的JDBC数据库连接使用 DriverManager 来获取,每次向数据库建立连接的时候都要将 Connection 加载到内存中,再验证用户名和密码。需要数据库连接的时候,就向数据库要求一个,执行完成后再断开连接。这样的方式将会消耗大量的资源和时间。数据库的连接资源并没有得到很好的重复利用.若同时有几百人甚至几千人在线,频繁的进行数据库连接操作将占用很多的系统资源,严重的甚至会造成服务器的崩溃。

 3、 对于每一次数据库连接,使用完后都得断开。否则,如果程序出现异常而未能关闭,将会导致数据库系统中的内存泄漏,最终将导致重启数据库。这种开发不能控制被创建的连接对象数,系统资源会被毫无顾及的分配出去,如连接过多,也可能导致内存泄漏,服务器崩溃.

二、C3p0

1、  C3P0是一个开源的JDBC连接池,它实现了数据源和JNDI绑定,支持JDBC3规范和JDBC2的标准扩展。c3p0是异步操作的,缓慢的JDBC操作通过帮助进程完成。扩展这些操作可以有效的提升性能

2、  c3p0连接池比使用需要的一些操作

下载c3p0-0.9.1.2.jar这个jar包

并加载到项目里面

3、 进行文件配置

       连接数据库有很多的参数,例如:用户名,密码等

       第一种 、Xml文件配置程序会自动寻找配置文件,xml的文件名固定为c3p0-config.xml
文件在classpath路径下,即src下, 就是类的加载路径里面的基本配置如下:

<?xml version="1.0"encoding="UTF-8"?>

<c3p0-config>

       <default-config>

              <propertyname="driverClass">com.mysql.jdbc.Driver</property>

              <propertyname="jdbcUrl">jdbc:mysql://192.168.2.21:3306/mone</property>

              <propertyname="user">root</property>

              <propertyname="password">123</property>

 

              <!--连接池中保留的最大连接数。默认值: 15 -->

              <propertyname="maxPoolSize" value="20" />

              <!--连接池中保留的最小连接数,默认为:3 -->

              <propertyname="minPoolSize" value="5" />

              <!--初始化连接池中的连接数,取值应在minPoolSize与maxPoolSize之间,默认为3 -->

              <propertyname="initialPoolSize" value="10" />

       </default-config>

</c3p0-config>

调用:ComboPooledDataSource dataSource= new ComboPooledDataSource();

第二种、 直接用set方法设置参数, 基本方法:

ComboPooledDataSource dataSource = newComboPooledDataSource();
dataSource.setDriverClass("com.mysql.jdbc.Driver");
dataSource.setJdbcUrl("jdbc:mysql:// 192.168.2.21:3306/mone");
dataSource.setUser("root");
dataSource.setPassword("123");

当可以用dataSource获取一个连接

Connection conn = dataSource.getConnection();

调用queryrunner的构造方法

QueryRunner qr= new QueryRunner();

执行查询方法

List<Material> list =qr.query(conn,sql, new BeanHandler< Material >( Material.class))

第三种、采用.porperties属性文件的方式
  固定文件名:c3p0.properties
  文件在classpath路径下,即src下, 就是类的加载路径

c3p0.driverClass=com.mysql.jdbc.Driver

c3p0.jdbcUrl=jdbc:mysql:// 192.168.2.21:3306:3306/数据库名

c3p0.user=root

c3p0.password=123

初始数据源:

ComboPooledDataSource dataSource= new ComboPooledDataSource();

原创粉丝点击