C3P0数据库连接池连接Mysql8.0.11的配置问题
2023-06-13 09:11:16 时间
大家好,又见面了,我是你们的朋友全栈君。
C3P0连接Mysql8.0.11的配置问题
小白一个,这几天,在学C3P0数据连接池,把遇到的一些问题记录一下,希望能帮到你们。
题主的环境:
- Eclipse
- C3P0-0.9.5.2 可参考这里下载
- Mysql8.0.11
Eclipse目录结构如下:
1.创建配置文件c3p0-config.xml
在src(类路径)目录下添加配置文件c3p0-config.xml
<?xml version="1.0" encoding="UTF-8" ?>
<c3p0-config>
//默认的配置
<default-config>
<property name="jdbcUrl">jdbc:mysql://localhost:3306/mydb_02?&useSSL=false&serverTimezone=UTC</property>
<propertyname="driverClass">com.mysql.cj.jdbc.Driver</property>
<property name="user">root</property>
<property name="password">123456</property?
<property name="acquireIncrement">3</property>
<property name="initialPoolSize">10</property>
<property name="minPoolSize">2</property>
<property name="maxPoolSize">10</property>
<named-config name="oracle">
</default-config>
</c3p0-config>
请注意,这个配置文件可能会出现的错误如下:
- [ 1]对实体‘useSSL’ 的引用必须以 ‘;’ 分隔符结尾. –
解决办法:在jdbcUrl中所有带 ‘&’的后面加上amp并加上;
如:jdbc:mysql://localhost:3306/数据库名?&useSSL=false&serverTimezone=UTC
- [2 ] not Suitable driver
解决办法:JDBC版本和C3P0版本不兼容,题主开始用的mysql8.0.11+c3p0-0.9.1.2报了这个异常,后来去下了c3p0最新版(0.9.5.2)得以解决。
2.工具类C3P0Utils
package cn.lds.C3P0;
import java.sql.Connection;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.sql.SQLException;
import javax.sql.DataSource;
import com.mchange.v2.c3p0.ComboPooledDataSource;
public class C3P0Utils {
private static ComboPooledDataSource dataSource = new ComboPooledDataSource();
//获得数据源
public static DataSource getDataSource() {
return dataSource;
}
//获得连接对象
public static Connection getConnection() {
try {
return dataSource.getConnection();
} catch (SQLException e) {
throw new RuntimeException(e);
}
}
//释放资源
public static void release(Connection con, PreparedStatement par, ResultSet re) {
if (re != null) {
try {
re.close();
} catch (SQLException e) {
e.printStackTrace();
}
}
if (par != null) {
try {
par.close();
} catch (SQLException e) {
e.printStackTrace();
}
}
if (con != null) {
try {
con.close();
} catch (SQLException e) {
e.printStackTrace();
}
}
}
}
3.测试类TestC3P0
package cn.lds.C3P0;
import java.sql.Connection;
import java.sql.PreparedStatement;
import java.sql.SQLException;
public class TestC3P0 {
public static void main(String[] args) {
TestAdd();
}
public static void TestAdd() {
Connection con =null;
PreparedStatement ps=null;
try {
con=C3P0Utils.getConnection();
String sql="insert into login_inf values(?,?)";
ps=con.prepareStatement(sql);
ps.setString(1, "张飞");
ps.setString(2, "123456");
int row = ps.executeUpdate();
if(row>0) {
System.out.println("插入成功");
}else {
System.out.println("插入失败");
}
} catch (SQLException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}finally{
C3P0Utils.release(con, ps, null);
}
}
4.运行结果
想想自己也是够笨的,折腾了3小时。。。。
发布者:全栈程序员栈长,转载请注明出处:https://javaforall.cn/136412.html原文链接:https://javaforall.cn
相关文章
- SpringBoot数据库配置源码解析:自动配置注解解析
- 【错误记录】使用 Jedis 操作 Redis 数据库报错 ( JedisConnectionException | Redis 连接超时故障排查点 | 绑定配置 | 保护模式 | 防火墙 )
- 分享PostgreSQL 数据库的远程连接配置操作
- oracle 11g配置 解决启动连接数据库出现的ora错误
- spring下配置Sql Server 2008 R2数据库连接详解编程语言
- MySQL Variables concurrent_insert 数据库 参数变量解释及正确配置使用
- MySQL Variables max_connect_errors 数据库 参数变量解释及正确配置使用
- MySQL Variables max_insert_delayed_threads 数据库 参数变量解释及正确配置使用
- MySQL Variables max_length_for_sort_data 数据库 参数变量解释及正确配置使用
- MySQL Variables metadata_locks_hash_instances 数据库 参数变量解释及正确配置使用
- MySQL Variables myisam_mmap_size 数据库 参数变量解释及正确配置使用
- MySQL Variables myisam_recover_options 数据库 参数变量解释及正确配置使用
- MySQL Variables optimizer_trace_offset 数据库 参数变量解释及正确配置使用
- MySQL Variables protocol_version 数据库 参数变量解释及正确配置使用
- MySQL Variables tx_read_only 数据库 参数变量解释及正确配置使用
- 探究 Oracle 数据库的 SID 配置(oracle的sid)
- 配置PHP实现MySQL数据库连接(php连接mysql配置)
- MySQL数据库连接配置指南(mysql连接数据库配置)
- 数据库配置C3P0连接Oracle:一次成功的解决方案(c3p0配置oracle)
- 环境配置配置Oracle数据库从库环境(oracle从库)
- 成功构建Oracle数据库连接:配置指南(oracle数据库连接配置)
- C语言连接MySQL数据库配置链接串(c mysql 链接串)
- 调整c3p0连接池配置实现oracle数据库连接(c3p0oracle配置)
- MySQL数据库的下载和配置教程(mysql下载配置教程)
- c#连接access数据库config配置