功能:
- 通过池的概念,来减少频繁创建和关闭数据库物理连接的资源消耗
- 数据库连接池(数据源),本文主要介绍C3P0
- 建立和关闭数据库物理连接是及其耗费系统资源的,所以使用连接池来管理
- 系统启动时建立一定的数据库连接,将其放入池中,当需要的时候直接从池中拿,用完后再放回池中,这样避免了数据库连接频繁打开关闭而造成的系统性能下降问题
-
事情前请先下载对应的jar包
地址:下载地址(2013-03-03有效)
- 下载好之后导入c3p0-0.9.2.jar、mchange-commons-java-0.2.3.3.jar这两个jar包到您的项目中
- 本文为了清楚的演示将所有的配置信息都写在了java文件中,真实工作中请将其移入配置文件(xml或者资源文件)
- 想了解更多?请看:c3p0官方使用指引(2013-03-03有效)
- package com.cxy.jdbc;
- import java.sql.Connection;
- import java.sql.ResultSet;
- import java.sql.Statement;
- import com.mchange.v2.c3p0.ComboPooledDataSource;
- /**
- * @author cxy @ www.cxyapi.com
- */
- public class C3p0Test
- {
- public static void main(String[] args) throws Exception
- {
- ComboPooledDataSource ds=new ComboPooledDataSource();
- ds.setDriverClass("com.mysql.jdbc.Driver"); //加载对应数据库的驱动
- ds.setJdbcUrl("jdbc:mysql://localhost/dbtest"); //设置数据库的URL
- ds.setUser("root"); //设置数据库用户名
- ds.setPassword("root"); //设置数据库密码
- ds.setInitialPoolSize(5); //初始创建连接数
- ds.setMinPoolSize(5); //最小连接数
- ds.setMaxPoolSize(10); //设置连接池最大连接数
- ds.setMaxStatements(100); //缓存Statement的最大数
- //当然 配置不仅仅这么多 如果想知道更多 那么请看下载下来zip包内有文档,里面提供更多更详尽的配置信息
- try
- (
- Connection con=ds.getConnection();
- Statement stmt=con.createStatement();
- ResultSet rs=stmt.executeQuery("select * from t_student");
- )
- {
- System.out.println("id\t姓名\t 性别");
- while(rs.next())
- {
- System.out.println(rs.getString(1)+"\t"+rs.getString(2)+"\t"+rs.getString(3));
- }
- }
- }
- }