zoukankan      html  css  js  c++  java
  • dbcp_c3p0连接mysql8.0.13

    背景

    学习数据库的使用,上次没有记录,现在都回忆不起来了,所以这次重新学的时候顺便记录下。

    配置环境

    • win10
    • jdk11
    • idea
    • mysql8.0.13

    DBCP连接使用

    用配置文件目前我连接不来

    jar包

    • mysql-connector-java-8.0.14
    • commons-pool2-2.6.0
    • commons-logging-1.2
    • commons-dbcp2-2.5.0

    使用代码连接数据库

    代码

    import org.apache.commons.dbcp2.BasicDataSource;
    import java.sql.Connection;
    import java.sql.PreparedStatement;
    import java.sql.SQLException;
    
    
    
    BasicDataSource dataSource = new BasicDataSource();
    /*mysql数据库的连接,参考我上篇文章*/
    dataSource.setDriverClassName("com.mysql.cj.jdbc.Driver");
    dataSource.setUrl("jdbc:mysql://localhost:3306/webdemo?useSSL=false&serverTimezone=UTC");
    dataSource.setUsername("root");
    dataSource.setPassword("root");
    

    测试

    Connection conn = dataSource.getConnection();
    String sql = "INSERT INTO category VALUES('ee','ee');";
    PreparedStatement preparedStatement = conn.prepareStatement(sql);
    /*增删改:执行更新*/
    System.out.println(preparedStatement.executeUpdate());
    

    曾经报错

    java.lang.NoClassDefFoundError: org/apache/commons/logging/LogFactory
    
    

    解决方法:导入commons-logging.jar

    C3P0的使用

    jar包

    • c3p0-0.9.5.2
    • mchange-commons-java-0.2.11
    • mysql-connector-java-8.0.14

    使用代码连接数据库

    代码

    import com.mchange.v2.c3p0.ComboPooledDataSource;
    import org.junit.Test;
    
    import java.sql.Connection;
    import java.sql.PreparedStatement;
    
    public class c3p0Demo {
        @Test
        public void c3p0Test() throws Exception {
            ComboPooledDataSource dataSource = new ComboPooledDataSource();
            dataSource.setDriverClass("com.mysql.cj.jdbc.Driver");
            dataSource.setJdbcUrl("jdbc:mysql://localhost:3306/webdemo?useSSL=false&serverTimezone=UTC");
            dataSource.setUser("root");
            dataSource.setPassword("root");
    
            Connection conn = dataSource.getConnection();
            String sql = "INSERT INTO category VALUES('bvb','gg');";
            PreparedStatement preparedStatement = conn.prepareStatement(sql);
            preparedStatement.executeUpdate();
    
        }
    }
    

    曾经报错

    java.lang.NoClassDefFoundError:com.mchange.v2.ser.Indirector
    

    解决方法:这是c3p0的一个错误信息,我们在下载 c3p0时候,zip压缩包中,有三个jar,其中一个 c3p0-x.x.x.jar,还有一个  mchange.......jar的文件,导入即可

    使用配置文件连接数据库

    在src文件夹下创建 c3p0-config.xml ,名字和地址都不能改

    配置文件代码,注意其中的 & 要转义为&amp

    <c3p0-config>
        <default-config>
            <!-- 必要参数 -->
            <property name="driverClass">com.mysql.cj.jdbc.Driver</property>
            <property name="jdbcUrl">jdbc:mysql://localhost:3306/webdemo?useSSL=false&amp;serverTimezone=UTC</property>
            <property name="user">root</property>
            <property name="password">root</property>
            <!-- 下面不是必要的参数 -->
            <property name="initialPoolSize">10</property>
            <property name="maxIdleTime">30</property>
            <property name="maxPoolSize">100</property>
            <property name="minPoolSize">10</property>
            <property name="maxStatements">200</property>
        </default-config>
    </c3p0-config>
    

    测试代码

    package cn.wahll.test;
    
    import com.mchange.v2.c3p0.ComboPooledDataSource;
    import org.junit.Test;
    
    import java.sql.Connection;
    import java.sql.PreparedStatement;
    import java.sql.SQLException;
    
    public class c3p0Demo {
        @Test
        public void c3p0PoolTest() throws Exception {
            //直接找到配置文件下的默认配置
            ComboPooledDataSource dataSource = new ComboPooledDataSource();
            //测试代码
            Connection conn = dataSource.getConnection();
            String sql = "INSERT INTO category VALUES('bsafvb','asdgg')";
            PreparedStatement preparedStatement = conn.prepareStatement(sql);
            preparedStatement.executeUpdate();
        }
    }
    
    
  • 相关阅读:
    C#之泛型
    etcd 使用: golang 例子
    九卷读书:《高效能人士的7个习惯》脑图
    Go package(2) strings 用法
    技术管理:技术管理者的多维度能力及成长路径
    gin框架教程:代码系列demo地址
    五大常见的MySQL高可用方案
    gin框架教程三:JWT的使用
    九卷读书:商业模式画布
    Go package(1) time 用法
  • 原文地址:https://www.cnblogs.com/richardwlee/p/10308507.html
Copyright © 2011-2022 走看看