C3P0数据库连接池连接Mysql8.0.11的配置问题

C3P0数据库连接池连接Mysql8.0.11的配置问题C3P0(0.9.5.2)连接Mysql8.0.11的配置问题**小白一个,这几天,在学C3P0数据连接池,把遇到的一些问题记录一下,希望能帮到你们。题主的环境:EclipseC3P0-0.9.5.2可参考这里下载Mysql8.0.11****1.创建配置文件c3p0-config.xml**<?xmlversion="1.0&am

大家好,又见面了,我是你们的朋友全栈君。

C3P0连接Mysql8.0.11的配置问题

小白一个,这几天,在学C3P0数据连接池,把遇到的一些问题记录一下,希望能帮到你们。

题主的环境:

  1. Eclipse
  2. C3P0-0.9.5.2 可参考这里下载
  3. 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?&amp;useSSL=false&amp;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/数据库名?&amp;useSSL=false&amp;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.net/136412.html原文链接:https://javaforall.net

(0)
上一篇 2022年5月4日 下午3:20
下一篇 2022年5月4日 下午3:20


相关推荐

  • hibernate二级缓存(一)一级缓存与二级缓存

    hibernate二级缓存(一)一级缓存与二级缓存hibernate二级缓存(一)一级缓存与二级缓存1.hibernate一级缓存hibernate的一级缓存是session级别的缓存,一级缓存hibernate默认启用且不能被卸载,一个事务内有效。特点:使用一级缓存的目的是为了减少对数据库的访问次数,从而提升hibernate的执行效率;(当执行一次查询操作的时候,执行第二次查询操作,先检查缓存中是否有数据,如果有数据就不查询数据库…

    2022年5月24日
    38
  • vuex里mapState,mapGetters使用详解

    vuex里mapState,mapGetters使用详解这次给大家带来vuex里mapState,mapGetters使用详解,vuex里mapState,mapGetters使用的注意事项有哪些,下面就是实战案例,一起来看一下。一、介绍vuex里面的四大金刚:State,Mutations,Actions,Getters(上次记得关于vuex笔记http://www.jb51.net/article/138229.htm,是一个简…

    2022年5月6日
    49
  • 黑盒测试用例设计方法详解

    黑盒测试用例设计方法详解黑盒测试用例设计方法包括等价类划分法、边界值分析法、错误推测法、因果图法、判定表驱动法、正交试验设计法、功能图法、场景图法等。(一)等价类划分法定义:等价类划分法是把所有可能输入的数据,即程序的输入域划分策划国内若干部分(子集),然后从每一个子集中选取少数具有代表性的数据作为测试用例。方法是一种重要的、常用的黑盒测试用例设计方法。等价类是指某个输入域的子集合。在该子集合中,各个输入数据…

    2022年6月6日
    29
  • 运维之思科篇 —–3.HSRP(热备份路由协议),STP(生成树协议),PVST(增强版PST)

    运维之思科篇 —–3.HSRP(热备份路由协议),STP(生成树协议),PVST(增强版PST)ThreeDay 总结 SPRH 是思科私有协议 成员是 格式是 消息是 状态与计时器是 配置是 STP 生成树协议作用是 ST 的算法是 BPDU 是 STP 的 5 种状态是 STP 的三种记时器是 SVTP 的意义 SVTP 的配置命令 一 热备份路由选择协议 HSRP 1 作用 Cisco 私有协议 确保了当网络边缘设备

    2026年3月19日
    2
  • matlab 随机数矩阵_随机矩阵理论

    matlab 随机数矩阵_随机矩阵理论A=rand(3,5)%定义一个3行5列的随机矩阵size(A)%返回值是35rows=size(A,1)%取到行数,1指代取行数cols=size(A,2)%取到列数,2指代取列数注意:目前MATLAB中下标都是从1开始的

    2025年5月31日
    7
  • 广义估计方程GEE

    广义估计方程GEE本文大部分内容来源于书本和论文等资料 笔者将本文归为转载类 读者转载时请注明出处 https blog csdn net fjsd155 article details 广义估计方程 generalizede GEE 用于估计广义线性模型的参数 其中线性模型的结果之间可能存在未知的相关性 于 1986 年由 Liang 和 Zeger 首次提出

    2026年3月20日
    3

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号