Fork me on GitHub

JDBC——连接池c3p0连接问题

JDBC——c3p0连接问题

今天,在学习JDBC——c3p0连接池时,写好c3p0-config.xml文件后运行测试类出现以下错误:

经过百度发现出错行:

1
<properties  name="jdbcUrl">jdbc:mysql://localhost:3306/school?useSSL=false&serverTimezone=UTC</properties >

原因是因为在xml中要显示 & 符号需要用 &amp;实体名称来代替

1
<properties  name="jdbcUrl">jdbc:mysql://localhost:3306/school?useSSL=false&amp;serverTimezone=UTC</properties >

然后运行后又发现问题:
在网上找了很多错误解决方案:
1,驱动配置有误:driver=com.mysql.jdbc.Driver
2,数据库连接地址有误:url=jdbc:mysql://localhost:3306/test? 3useUnicode=true&characterEncoding=utf8 3,密码或帐号有误:username=root password=root
4,数据库未启动或无权访问
5,项目未引入对应的驱动jar包mysql-connector-java-5.1.6-bin.jar6,mysql root没有远程访问的权限,需要增加权限,增加权限的步骤如下:
进入mysql数据库:
grant all privileges on . to ‘root‘@’%’ identified by ‘root’ with grant option;
flush privileges;
但都没解决,后来发现有的xml代码标签是properties,还有的是property,
将properties都换了property以后,运行代码,ok

完美解决,暂时不知道什么原因
附加代码:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
<c3p0-config>
<!-- 默认配置,如果没有指定使用这个配置 -->
<default-config>
<!-- 基本配置 -->
<property name="driverClass">com.mysql.cj.jdbc.Driver</property >
<property name="jdbcUrl">jdbc:mysql://localhost:3306/school?useSSL=false&amp;serverTimezone=UTC</property >
<property name="user">root</property >
<property name="password">root</property >
<!-- 初始大小 -->
<property name="initialPoolSize">10</property >
<!-- 30秒不适用丢弃 -->
<property name="maxIdleTime">30</property >
<property name="maxPoolSize">100</property >
<property name="minPoolSize">10</property >
</default-config>
<!-- 命名的配置 -->
<name-config name="myc3p0">
<property name="driverClass">com.mysql.cj.jdbc.Driver</property>
<property name="jdbcUrl">jdbc:mysql://localhost:3306/school?useSSL=false&amp;serverTimezone=UTC</property>
<property name="user">root</property>
<property name="password">root</property>
<!-- 如果池中连接不够时一次增长多少个 -->
<property name="acquireIncrement">5</property>
<property name="initialPoolSize">20</property>
<property name="minPoolSize">10</property>
<property name="maxPoolSize">40</property>
</name-config>
</c3p0-config>