数据库连接池与DBCUtils工具类简单实用

DBUtils实用前准备

  1. java数据库驱动mysql-connector-java-5.0.8-bin.jar
  2. Commons-dbutils-1.4.jar  DBUtils工具类的包
  3. C3p0-0.9.1.2.jar 数据源的驱动包
  4. c3p0-config.xml 数据库连接池配置文件(其中内容应该包括数据库链接信息等等)

源数据与数据库链接的 DBUtils工具类的使用结构

具体项目结构

 

其中可以使用DBCP和C3P0数据源 具体问题具体看待

c3p0-config.xml 的配置文件是与c3p0相匹配的文件

在c3p0文件中主要是对所要链接的数据库的信息存储(后缀.xml)

示例:

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

<c3p0-config>

<!-- default-config 默认的配置,  -->

  <default-config>

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

    <property name="jdbcUrl">jdbc:mysql://localhost/test</property>

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

    <property name="password">root</property>

    

    

    <property name="initialPoolSize">10</property>

    <property name="maxIdleTime">30</property>

    <property name="maxPoolSize">100</property>

    <property name="minPoolSize">10</property>

    <property name="maxStatements">200</property>

  </default-config>

   <!-- This app is massive! -->

  <named-config name="oracle"> 

    <property name="acquireIncrement">50</property>

    <property name="initialPoolSize">100</property>

    <property name="minPoolSize">50</property>

    <property name="maxPoolSize">1000</property>

    <!-- intergalactoApp adopts a different approach to configuring statement caching -->

    <property name="maxStatements">0</property> 

    <property name="maxStatementsPerConnection">5</property>

    <!-- he's important, but there's only one of him -->

    <user-overrides user="master-of-the-universe"> 

      <property name="acquireIncrement">1</property>

      <property name="initialPoolSize">1</property>

      <property name="minPoolSize">1</property>

      <property name="maxPoolSize">5</property>

      <property name="maxStatementsPerConnection">50</property>

    </user-overrides>

  </named-config>

</c3p0-config>

使用c3p0数据源操作数据库

//示例:插入

//通过读取配置文件(c3p0-config.xml),放在src

@Test

public void test02() throws SQLException, PropertyVetoException {

//建立数据源

Connection conn=null;

PreparedStatement ps=null;

try {

ComboPooledDataSource dataSource = new ComboPooledDataSource();//重点!!!

//建立连接

conn= dataSource.getConnection();

String sql="insert into account_1 values(null,?,?)";

ps = conn.prepareStatement(sql);

ps.setString(1, "插入数据");

ps.setInt(2, 7999);

ps.executeUpdate();

}finally {

JDBCUtil.release(conn, ps);

}

}

而对于DBUtils工具是对实例对象数据传输具体操作的简化

其中的

QueryRunner queryRunner=new QueryRunner(new ComboPooledDataSource());

其中已使用c3p0数据源建立连接

Account account=queryRunner.query("select *from account where id=?", new BeanHandler<Account>(Account.class),1);

Account是对已获得数据库信息数据的示例化对象 存储

示例:插入

public static void testInsert() throws SQLException {

//建立连接,链接还是归C3P0,创建数据源

ComboPooledDataSource dataSource = new ComboPooledDataSource();//重点!!! //创建DBUtil工具的对象,简化了增删改查

QueryRunner queryRunner = new QueryRunner(dataSource);

//QueryRunner queryRunner = new QueryRunner(new ComboPooledDataSource());

//插入一条记录

queryRunner.update("insert into account values(?,?,?) ",2,"张飞",9000);

}

Query适合查询

Update适合插入、更新、删除

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值