C3P0使用小结

来源:互联网 发布:手机编程用什么语言 编辑:程序博客网 时间:2024/06/05 04:44

**C3P0是一个开源的JDBC连接池,它实现了数据库和JNDI绑定,支持JDBC3的标准扩展。目前使用它的开源项目有Hibernate,Spring等。
具体开发步骤如下:
1.把需要的jar包拷贝到过程下面
这里写图片描述
说明:实际开发中导包,我们一般会导入名字最短的一个包

2.学习官方文档
这里写图片描述

这里写图片描述

3.手动配置参数信息

ComboPooledDataSource cpds = new ComboPooledDataSource(); //loads the jdbc driver            cpds.setDriverClass( "org.postgresql.Driver" );cpds.setJdbcUrl( "jdbc:postgresql://localhost/testdb" );cpds.setUser("dbuser");                                  cpds.setPassword("dbpassword");   

=====================================
实际开发中我们同样会利用配置文件来设置相关的参数信息,那么如何配置呢,查找官方文档
这里写图片描述
说明:有多种配置文件的方法可以来配置参数信息,但是常用框架中多是使用XML文件进行配置的,所以我们首先来学习XML文件的配置。
这里写图片描述
说明:类加载的路径,为工程下面的BIN目录下面,当我们把配置文件放到SRC目录下回自动被放到BIN目录下面,所以默认是放在SRC目录下面的!!
1.创建配置文件,写入先关的参数信息

<?xml version="1.0" encoding="UTF-8"?><c3p0-config><!-- 我们希望在配置文件中,出现链接的参数信息 --><default-config><!-- name 属性定义 链接参数的key 标签的内容 代表值--><property name="driverClass">com.mysql.jdbc.Driver</property><property name="jdbcUrl">jdbc:mysql://localhost:3306/day08</property><property name="user">root</property><property name="password">123456</property></default-config> <!-- named-config c3p0 允许我们去创建多个数据库的链接。name="intergalactoApp" 代表一个数据库标识 可以自己命名--><named-config name="day07"><property name="driverClass">com.mysql.jdbc.Driver</property><property name="jdbcUrl">jdbc:mysql://localhost:3306/day07</property><property name="user">root</property><property name="password">123456</property></named-config></c3p0-config>

2.查看说明文档,利用配置文件创建对象
这里写图片描述

@Testpublic void demo2() throws PropertyVetoException{//ComboPooledDataSource c3p0的核心连接池 可以从ComboPooledDataSource 对象中去获取链接。//ComboPooledDataSource ds = new ComboPooledDataSource();ComboPooledDataSource ds = new ComboPooledDataSource("day07");Connection conn = null;Statement stmt = null;ResultSet rs = null;try {conn    = ds.getConnection();//获取statment对象stmt = conn.createStatement();//执行sqlString sql = "select * from account";rs = stmt.executeQuery(sql);while(rs.next()){    System.out.println(rs.getString("name"));}    } catch (SQLException e) {    // TODO Auto-generated catch block        e.printStackTrace();        }finally{//换回到连接池中/*** 1、需要去掌握我们自己定义的方法 * 2、有一些违法jdbc的基本操作。*///ds.release(conn);//此时不要把conn对象传递过去。JdbcUtil.release(conn, stmt, rs);}}
0 0