链接数据库超级简单的工具类C3P0谁用谁知道
首先导入两个jar包一个C3P0的
c3p0-0.9.1.2.jar
另一个是你所使用的数据库的
mysql-connector-java-5.1.7-bin.jar
接下来就是直接上代码:
package com.c3p0.cn; import org.junit.Test; import com.mchange.v2.c3p0.ComboPooledDataSource; public class C3P0_Test { /** * 硬链接 * @throws Exception */ @Test public void c3p0_Test_old() throws Exception { ComboPooledDataSource dataSource = new ComboPooledDataSource();//数据源端口池 dataSource.setDriverClass("com.mysql.jdbc.Driver"); dataSource.setJdbcUrl("jdbc:mysql://localhost:3306/staff"); dataSource.setUser("root"); dataSource.setPassword("123456"); dataSource.setInitialPoolSize(3);//设置初始链接数 dataSource.setMaxPoolSize(6);//设置最大连接数 dataSource.setMaxIdleTime(3000);//设置最大活跃时间 dataSource.getConnection().prepareStatement("delete from user where id = 18").executeUpdate(); } /** * 配置方式链接 * @throws Exception */ @Test public void c3p0_Test() throws Exception { ComboPooledDataSource dataSource = new ComboPooledDataSource();//默认会调用src下面的c3p0_config.xml配置文件 dataSource.getConnection().prepareStatement("delete from user where id = 19").executeUpdate(); } }
作为JDBC使用的时候可以结合DBUtils的包一起使用,而且代码实现非常方便(下面就是采用两个jar包,结合使用的查询数据库中元素的方式)
package com.xinzhi.utils; import org.apache.commons.dbutils.QueryRunner; import com.mchange.v2.c3p0.ComboPooledDataSource; public class JdbcUtils { public static QueryRunner getQueryRunner(){ ComboPooledDataSource comboPooledDataSource = new ComboPooledDataSource(); QueryRunner queryRunner = new QueryRunner(comboPooledDataSource); return queryRunner; } }
package com.xinzhi.dao.impl; import java.sql.SQLException; import java.util.ArrayList; import java.util.List; import org.apache.commons.dbutils.QueryRunner; import org.apache.commons.dbutils.handlers.BeanListHandler; import com.xinzhi.dao.UserDao; import com.xinzhi.empity.User; import com.xinzhi.utils.JdbcUtils; public class UserDaoImpl implements UserDao { public List<User> getAll() { QueryRunner queryRunner = JdbcUtils.getQueryRunner(); String sql = "select * from userempity"; List<User> users = new ArrayList<User>(); try { users = queryRunner.query(sql, new BeanListHandler<User>(User.class)); } catch (SQLException e) { throw new RuntimeException(e); } return users; } }
硬链接是不需要配置文件的,而配置链接是需要配置文件的,而c3p0在创建对象的时候默认会在src文件夹下面寻找一个叫c3p0_config.xml的配置文件
而这个默认的配置文件是有固定的格式参考如下,其中提供了可链接多个数据库的方式:
c3p0-config.xml
<c3p0-config> <default-config> <property name="driverClass">com.mysql.jdbc.Driver</property> <property name="jdbcUrl">jdbc:mysql://localhost:3306/staff</property> <property name="user">root</property> <property name="password">123456</property> </default-config> <named-config name="oracle_database"> <property name="driverClass">com.mysql.jdbc.Driver</property> <property name="jdbcUrl">jdbc:mysql://localhost:3306/staff</property> <property name="user">root</property> <property name="password">123456</property> </named-config> </c3p0-config>