JAVA作用C3P0创建连接

好记性不如赖笔头……

使用JAVA包如下:
c3p0-0.9.1.2.jar
mysql-connector-java-5.0.8-bin.jar
junit-4.8.2.jar(这个包一般自带,可以不用专门导入)

1、配置文件名:c3p0-config.xml,存储在src目录下

<?xml version="1.0" encoding="UTF-8"?>
<c3p0-config>
  <default-config>
  <!-- 保存driver/url/user/name信息 -->
  <property name="jdbcUrl">jdbc:mysql://127.0.0.1:3306/test</property>
  <property name="driverClass">com.mysql.jdbc.Driver</property>
  <property name="user">root</property>
  <property name="password">password</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>

2、获取连接:C3P0Util.java,主要用于创建连接、关闭连接

package com.ckinghan.c3p0;

import java.sql.Connection;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.sql.Statement;

import com.mchange.v2.c3p0.ComboPooledDataSource;

public class C3P0Util {
    //C3P0的方式创建实例,这个实例会自动读取c3p0-config.xml的配置文件
    private static  ComboPooledDataSource cpds = new ComboPooledDataSource();
    //获取连接
    public static Connection getConnection(){
        try {
            return cpds.getConnection();
        } catch (SQLException e) {
            e.printStackTrace();
            throw new RuntimeException("创建数据库连接失败,请检查配置文件");
        }
    }
    //关闭连接
    public static void closeConnection(ResultSet rs,Statement ps,Connection connection){

        if(rs != null){
            try {
                rs.close();
            } catch (SQLException e) {
                e.printStackTrace();
            }
        }

        if(ps != null){
            try {
                ps.close();
            } catch (SQLException e) {
                e.printStackTrace();
            }
        }

        if(connection != null){
            try {
                connection.close();
            } catch (SQLException e) {
                e.printStackTrace();
            }
        }

    }
}

3、测试JAVA类:C3P0Test.java

package com.ckinghan.c3p0;

import java.sql.Connection;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.sql.SQLException;

import org.junit.Test;

public class C3P0Test {

    @Test
    public void test(){
        Connection connection = C3P0Util.getConnection();
        PreparedStatement pStatement = null;
        ResultSet rSet = null;
        try {
            pStatement = connection.prepareStatement("select * from account");
            rSet = pStatement.executeQuery();
            while (rSet.next()) {
                System.out.println(rSet.getInt(1)+"  "+rSet.getString(2)+"  "+rSet.getString(3));
            }
        } catch (SQLException e) {
            e.printStackTrace();
        }finally {
            C3P0Util.closeConnection(rSet, pStatement, connection);
        }

    }
}

4、执行测试文件:

1  admin  1000
2  ckinghan  1000
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值