java工程配置c3p0_eclipse下C3P0连接池的配置

本文介绍了C3P0数据库连接池的基本思想和优势,并详细讲解了如何在Eclipse环境下配置C3P0连接池,包括下载jar包、配置c3p0-config.xml文件以及创建TestC3p0测试类进行数据库操作。同时,提供了一个C3P0Utils工具类方便日常使用,并解决配置过程中可能出现的SSL连接警告问题。
摘要由CSDN通过智能技术生成

简介:

数据库连接池的基本思想就是为数据库连接建立一个“缓冲池”。预先在缓冲池中放入一定数量的连接,当需要建立数据库连接时,只需从“缓冲池”中取出一个,使用完毕之后再放回去。数据库连接池负责分配、管理和释放数据库连接,它允许应用程序重复使用一个现有的数据库连接,而不是重新建立一个。它的优势有:

(1)资源重用

(2)更快的系统反应速度

(3)新的资源分配手段对于多应用共享同一数据库的系统而言,可在应用层通过数据库连接池的配置实现某一应用最大可用数据库连接数的限制避免某一应用独占所有的数据库资源.

(4)统一的连接管理,避免数据库连接泄露在较为完善的数据库连接池实现中,可根据预先的占用超时设定,强制回收被占用连接,从而避免了常规数据库连接操作中可能出现的资源泄露

主流的java连接池

C3P0连接池

DBCP

Proxool

...

1.记录 用C3P0连接池链接

下载C3P0连接池jar包 提取码:【27583EBAA9133A75D489356B99734362】经过MD5加密 ( ̄▽ ̄)皮一下 很开心

导入jar包到你需要的项目里面

fd9be8f60cff?utm_campaign=maleskine&utm_content=note&utm_medium=seo_notes&utm_source=recommendation

导入过程,英文版是【Build Path】-->【Configure Build Path...】

ps

fd9be8f60cff?utm_campaign=maleskine&utm_content=note&utm_medium=seo_notes&utm_source=recommendation

这个也需要的哦 你一定知道吧

在src文件夹粘贴下载下来的c3p0-config.xml文件(当然也可以自己新建,但是名字一定一致)

fd9be8f60cff?utm_campaign=maleskine&utm_content=note&utm_medium=seo_notes&utm_source=recommendation

然后配置这个文件

root

123456

com.mysql.jdbc.Driver

jdbc:mysql://localhost:3306/java_web?useSSL=true

5

10

10

50

20

5

//这个名字注意了

root//不是用户名

123456//不是密码

com.mysql.jdbc.Driver//认不到系列驱动

jdbc:mysql://localhost:3306/java_web??useUnicode=true&useSSL=false//java_web 请不要替换成你的数据库名字

5

10

10

50

20

5

配置信息主要是填写数据库驱动、数据库名称、数据库用户名、密码等等

建立一个TestC3p0测试类

假设我们mysql java_web数据库有一个表user_table如下

fd9be8f60cff?utm_campaign=maleskine&utm_content=note&utm_medium=seo_notes&utm_source=recommendation

fd9be8f60cff?utm_campaign=maleskine&utm_content=note&utm_medium=seo_notes&utm_source=recommendation

package demo;

import com.mchange.v2.c3p0.ComboPooledDataSource;

import java.sql.Connection;

import java.sql.PreparedStatement;

import java.sql.ResultSet;

import java.sql.SQLException;

public class TestC3p0 {

public void testSelect() {

Connection conn = null;

PreparedStatement pstmt = null;

ResultSet rs = null;

//1.创建自定义连接池对象

//此种方法加载的配置文件中默认配置default-config

// ComboPooledDataSource dataSource = new ComboPooledDataSource();

//加载有名称的配置named-config

ComboPooledDataSource dataSource = new ComboPooledDataSource("mysql");

try {

//2.从池中获取对象(改造过后)

conn = dataSource.getConnection();

//3.编写SQL语句

String sql="select username from user_table where password = ?";

//4.获取执行sql语句的对象

pstmt = conn.prepareStatement(sql);

//5.设置参数

pstmt.setString(1,"123");

//6.执行

rs = pstmt.executeQuery();

//7.处理结果集

while (rs.next()){

System.out.println(rs.getString("username"));

}

} catch (SQLException e) {

e.printStackTrace();

} finally {

if(rs!=null){

try {

rs.close();

} catch (SQLException e) {

e.printStackTrace();

}

}

if(pstmt!=null){

try {

pstmt.close();

} catch (SQLException e) {

e.printStackTrace();

}

}

if(conn!=null) {

try {

conn.close();

} catch (SQLException e) {

e.printStackTrace();

}

}

}

}

public static void main(String[] args){

TestC3p0 testC3p0 = new TestC3p0();

testC3p0.testSelect();

}

}

运行结果

fd9be8f60cff?utm_campaign=maleskine&utm_content=note&utm_medium=seo_notes&utm_source=recommendation

红色为日志信息

然后我们就可以编写一个工具类,方便使用

fd9be8f60cff?utm_campaign=maleskine&utm_content=note&utm_medium=seo_notes&utm_source=recommendation

package demo;

import com.mchange.v2.c3p0.ComboPooledDataSource;

import javax.sql.DataSource;

import java.sql.Connection;

import java.sql.PreparedStatement;

import java.sql.ResultSet;

import java.sql.SQLException;

public class C3P0Utils {

private static ComboPooledDataSource dataSource = new ComboPooledDataSource("mysql");

/**

* 获取连接池对象

*/

public static DataSource getDataSource(){

return dataSource;

}

/**

* 从池中获取连接对象

*/

public static Connection getConnection(){

try {

return dataSource.getConnection();

} catch (SQLException e) {

throw new RuntimeException(e);

}

}

/**

* 释放资源

*/

public static void releaseConnection(Connection connection,PreparedStatement pstmt,ResultSet rs){

if(rs!=null){

try {

rs.close();

} catch (SQLException e) {

e.printStackTrace();

}

}

if(pstmt!=null){

try {

pstmt.close();

} catch (SQLException e) {

e.printStackTrace();

}

}

if(connection!=null) {

try {

connection.close();

} catch (SQLException e) {

e.printStackTrace();

}

}

}

}

测试工具类的使用

fd9be8f60cff?utm_campaign=maleskine&utm_content=note&utm_medium=seo_notes&utm_source=recommendation

package demo;

import java.sql.Connection;

import java.sql.PreparedStatement;

import java.sql.ResultSet;

import java.sql.SQLException;

public class test {

public static void main(String[] args) {

Connection conn = null;

PreparedStatement pstmt = null;

ResultSet rs = null;

try {

conn = C3P0Utils.getConnection();

String sql="select username from user_table where password = ?";

pstmt = conn.prepareStatement(sql);

pstmt.setString(1,"123");

rs = pstmt.executeQuery();

while (rs.next()){

System.out.println(rs.getString("username"));

}

} catch (SQLException e) {

e.printStackTrace();

} finally{

C3P0Utils.releaseConnection(conn,pstmt,rs);

}

}

}

遇到的问题

1.

fd9be8f60cff?utm_campaign=maleskine&utm_content=note&utm_medium=seo_notes&utm_source=recommendation

如果你看见这个警告首先恭喜你,你完成了

原因:

不建议在没有服务器身份验证的情况下建立SSL连接,根据MySQL 5.5.45+、5.6.26+和5.7.6+的要求,如果没有设置显式选项,则必须默认建立SSL连接。为了符合不使用SSL的现有应用程序,verifyServerCertificate属性被设置为“false”。您需要通过设置useSSL=false显式禁用SSL,或者设置useSSL=true并为服务器证书验证提供信任存储。

解决

fd9be8f60cff?utm_campaign=maleskine&utm_content=note&utm_medium=seo_notes&utm_source=recommendation

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值