• 使用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>
    

    运行结果如下:

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

    (待完善)

  • 相关阅读:
    用FileSystemWatcher监视文件系统
    生成随机汉字验证码
    MySQL学习笔记二
    python高级学习笔记
    boost bind 表达式中的是值语义还是指针语义?
    容器与适配器的个人总结
    subversion linux使用方法
    boost asio(初学示例)
    MySQL学习笔记一
    subversion 命令
  • 原文地址:https://www.cnblogs.com/gxcstyle/p/11062048.html
Copyright © 2020-2023  润新知