您的位置:首页 > 编程语言 > Java开发

JavaWeb之DButils(三)使用C3P0实现数据库的连接池

2017-09-06 16:28 573 查看
一、首先准备c3p0-config.xml文件,这里我放在src下面

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

<default-config>
<property name="driverClass">com.mysql.jdbc.Driver</property>
<property name="jdbcUrl">jdbc:mysql:///mybase</property>
<property name="user">root</property>
<property name="password">root</property>
<property name="initialPoolSize">5</property>
<property name="maxPoolSize">20</property>
</default-config>

<named-config name="oracle">
<property name="driverClass">com.mysql.jdbc.Driver</property>
<property name="jdbcUrl">jdbc:mysql:///mybase</property>
<property name="user">root</property>
<property name="password">root</property>
</named-config>

</c3p0-config>


二、创建C3P0Utils工具类

package com.shuhuadream.jdbc.utils01;

import java.sql.Connection;
import java.sql.SQLException;

import javax.sql.DataSource;

import com.mchange.v2.c3p0.ComboPooledDataSource;

public class C3P0Utils {
private static ComboPooledDataSource dataSource = new ComboPooledDataSource("oracle");

public static DataSource getDataSource(){
return dataSource;
}

public static Connection getConnection(){
try {
return dataSource.getConnection();
} catch (SQLException e) {
throw new RuntimeException(e);
}
}
}


三、进行测试

package com.shuhaudream.test;

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

import org.junit.Test;

import com.mchange.v2.c3p0.C
4000
omboPooledDataSource;
import com.shuhuadream.jdbc.utils01.C3P0Utils;
import com.shuhuadream.jdbc.utils01.JDBCUtils_V3;

public class TestC3P0 {

@Test
public void testAddUser(){
Connection conn = null;
PreparedStatement pstmt = null;

try {
//2.从池子中获取连接
conn = C3P0Utils.getConnection();
String sql = "INSERT INTO sort (sname,sprice,sdesc)VALUES(?,?,?)";
//获取执行sql语句对象
//必须在自定义的connection中重写prepareStatement(sql)方法
pstmt = conn.prepareStatement(sql);
//设置参数
pstmt.setString(1, "学习用品3");
pstmt.setString(2, "3333");
pstmt.setString(3, "秋季开学特大优惠");
//执行插入操作
int rows = pstmt.executeUpdate();
if(rows>0){
System.out.println("数据插入成功!");
}else{
System.out.println("数据添加失败!");
}
} catch (SQLException e) {
e.printStackTrace();
} finally {
JDBCUtils_V3.release(conn, pstmt, null);
}
}

}


四、测试结果,数据插入成功





代码地址 https://gitee.com/911711054/JDBCLianJieChiHeDBUtils.git
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: