使用MySQL的时候遇到的一下问题(一)

最近有空将之前学习的内容进行一下总结。发现以前一些旧的东西发生了一些变化。

最近在连接搭建数据库,之前一直使用MySQL和Tomcat自带的数据库连接池进行学习(过一段时间在进行整理),但是现在想用一些其他的连接池进行关联,首先在网上查找了一些常用的连接池。例如:C3P0,Proxool,BoneCP等等(以后有空都进行一下尝试)。

本次首先以C3P0进行试验。

C3P0是什么?是一个开放源代码的JDBC连接池,它在lib目录中与Hibernate一起发布,包括了实现jdbc3和jdbc2扩展规范说明的Connection 和Statement 池的DataSources 对象。

如何配置C3P0呢。

        <?xml version="1.0" encoding="UTF-8"?>
        <c3p0-config>
            <default-config>
                <property name="jdbcUrl">jdbc:mysql://127.0.0.1:3306/javaspringdb?useSSL=false;serverTimezone=UTC</property>
                <property name="driverClass">com.mysql.cj.jdbc.Driver</property>
                <property name="user">root</property>
                <property name="password">19950609gxc</property> 
                <property name="checkoutTimeout">30000</property>
                <property name="idleConnectionTestPeriod">30</property>
                <property name="initialPoolSize">10</property>
                <property name="maxIdleTime">30</property>
                <property name="maxPoolSize">20</property>
                <property name="minPoolSize">10</property>
                <property name="maxStatements">200</property>
            </default-config>
      </c3p0-config>
    

以上是C3P0的配置文件,配置文件必须要放在src文件夹下

By default, c3p0 will look for an XML configuration file in its classloader's resource path under the name "/c3p0-config.xml". That means the XML file should be placed in a directly or jar file directly named in your applications CLASSPATH, in WEB-INF/classes, or some similar location . If you prefer not to bundle your configuration with your code, you can specify an ordinary filesystem location for c3p0's configuration file via the system property com.mchange.v2.c3p0.cfg.xml. 

意思是配置文件必须放在classpath路径中,在web环境下就是classes

现在开始说明本次尝试遇到的各种问题:

产生这个问题的使用的jar如下:

JDBC:mysql-connector-java-5.1.39-bin.jar

c3p0-0.9.5.2.jar

mchange-commons-java-0.2.11.jar

后面的两个jar包是C3P0使用的jar包,开始运行结果的图片如下:

产生上述问题的原因是因为调用了低版本的jdbc。(Mysql和mysql-connector都为8.0以上的版本时,连接驱动需要从com.mysql.jdbc.Driver了修改为com.mysql.cj.jdbc.Driver)

将上诉的jdbc换为mysql-connector-java-8.0.13.jar

        <?xml version="1.0" encoding="UTF-8"?>
        <c3p0-config>
            <default-config>
                <property name="jdbcUrl">jdbc:mysql://127.0.0.1:3306/javaspringdb?useSSL=false;serverTimezone=UTC</property>
                <property name="driverClass">com.mysql.cj.jdbc.Driver</property>
                <property name="user">root</property>
                <property name="password">19950609gxc</property> 
                <property name="checkoutTimeout">30000</property>
                <property name="idleConnectionTestPeriod">30</property>
                <property name="initialPoolSize">10</property>
                <property name="maxIdleTime">30</property>
                <property name="maxPoolSize">20</property>
                <property name="minPoolSize">10</property>
                <property name="maxStatements">200</property>
            </default-config>
      </c3p0-config>

配置文件该为如上图:(再次运行)

配置完之后产生上述的问题,主要的原因在于配置文件的写的有问题,之前查找了一些资料,但是配置c3p0的配置不同,造成配置文件写成上面那样,主要的原因是因为在MySQL8.0的时候需要一个版本与数据相接近的jdbc。当将jdbc换到与数据库相接近的时候,在将配置文件改为下图:

JDBC:mysql-connector-java-8.0.11.jar

            <?xml version="1.0" encoding="UTF-8"?>
        <c3p0-config>
            <default-config>
                <property name="jdbcUrl">jdbc:mysql://127.0.0.1:3306/javaspringdb</property>
                <property name="driverClass">com.mysql.cj.jdbc.Driver</property>
                <property name="user">root</property>
                <property name="password">19950609gxc</property> 
                <property name="checkoutTimeout">30000</property>
                <property name="idleConnectionTestPeriod">30</property>
                <property name="initialPoolSize">10</property>
                <property name="maxIdleTime">30</property>
                <property name="maxPoolSize">20</property>
                <property name="minPoolSize">10</property>
                <property name="maxStatements">200</property>
            </default-config>
      </c3p0-config>

运行结果如下:

此结果已经说明可以与数据库进行相连了。

(待完善)

posted @ 2019-06-20 23:13  xingchen95  阅读(594)  评论(0编辑  收藏  举报