IDEA使用C3P0连接Mysql数据库

本文涉及的产品
云数据库 RDS MySQL Serverless,0.5-2RCU 50GB
简介: IDEA使用C3P0连接Mysql数据库

 目录

1、下载驱动并加入项目

2、配置c3p0-config.xml

3、编写工具类

4、编写测试类并运行

5、致谢


1、下载驱动并加入项目

1>导入:c3p0-0.9.2.1.jar,mchange-commons-java-0.2.3.4.jar(关注左侧公众号:蓝多多的小仓库  回复“c3p0”即可获取资源)

image.gif

image.gif

2>File ------> Project Structure…------> Libraies------>+------>Java

image.gif


image.gif


image.gifmchange-commons-java-0.2.3.4.jar的导入同理:

image.gif

2、配置c3p0-config.xml

如果不知道IDEA中如何创建xml文件请参考:IDEA中创建xml文件_蓝多多的小仓库-CSDN博客

注意:

image.gif完整配置:

<?xml version="1.0" encoding="UTF-8"?>
<c3p0-config>
  <!--
  C3P0的缺省(默认)配置,
  如果在代码中“ComboPooledDataSource ds = new ComboPooledDataSource();”这样写就表示使用的是C3P0的缺省(默认)配置信息来创建数据源
  -->
  <default-config>
    <property name="driverClass">com.mysql.cj.jdbc.Driver</property>
    <property name="jdbcUrl">jdbc:mysql://localhost:3306/book_test?useSSL=false&amp;serverTimezone=CTT&amp;characterEncoding=utf8</property>
    <property name="user">root</property>
    <property name="password">123456</property>
    <property name="acquireIncrement">5</property>
    <property name="initialPoolSize">10</property>
    <property name="minPoolSize">5</property>
    <property name="maxPoolSize">20</property>
  </default-config>
  <!--
  C3P0的命名配置,
  如果在代码中“ComboPooledDataSource ds = new ComboPooledDataSource("MySQL");”这样写就表示使用的是name是MySQL的配置信息来创建数据源
  -->
  <named-config name="MySQL">
    <property name="driverClass">com.mysql.cj.jdbc.Driver</property>
    <property name="jdbcUrl">jdbc:mysql://localhost:3306/book_test?useSSL=false&amp;serverTimezone=CTT&amp;characterEncoding=utf8</property>
    <property name="user">root</property>
    <property name="password">123456</property>
    <property name="acquireIncrement">5</property>
    <property name="initialPoolSize">10</property>
    <property name="minPoolSize">5</property>
    <property name="maxPoolSize">20</property>
  </named-config>
</c3p0-config>

image.gif

3、编写工具类

/**
 * @author 蓝多多的小仓库
 * @title: C3P0_Utils
 * @projectName ldd_firstpro
 * @description: ldd_annotation
 * @date 2022/1/13 15:23
 */
import java.sql.Connection;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.sql.Statement;
import com.mchange.v2.c3p0.ComboPooledDataSource;
public class C3P0_Utils {
  private static ComboPooledDataSource dataSource = null;
  //在静态代码块中创建数据库连接池
  static{
    try{
      dataSource = new ComboPooledDataSource("MySQL");//使用C3P0的命名配置来创建数据源
      System.out.println(dataSource);
    }catch (Exception e) {
      throw new ExceptionInInitializerError(e);
    }
  }
  public static Connection getConnection() throws SQLException{
    //从数据源中获取数据库连接
    return dataSource.getConnection();
  }
  // 释放资源
  public static void release(Connection conn,Statement st,ResultSet rs){
    if(rs!=null){
      try{
        //关闭存储查询结果的ResultSet对象
        rs.close();
      }catch (Exception e) {
        e.printStackTrace();
      }
      rs = null;
    }
    if(st!=null){
      try{
        //关闭负责执行SQL命令的Statement对象
        st.close();
      }catch (Exception e) {
        e.printStackTrace();
      }
    }
    if(conn!=null){
      try{
        //将Connection连接对象还给数据库连接池
        conn.close();
      }catch (Exception e) {
        e.printStackTrace();
      }
    }
  }
}

image.gif

4、编写测试类并运行

如果你用我的数据库,请参考:使用JDBC连接Mysql数据库的步骤_蓝多多的小仓库-CSDN博客_jdbc连接数据库步骤

/**
 * @author 蓝多多的小仓库
 * @title: DataSourceTest
 * @projectName ldd_firstpro
 * @description: ldd_annotation
 * @date 2022/1/13 15:24
 */
import java.math.BigDecimal;
import java.sql.Connection;
import java.sql.Date;
import java.sql.ResultSet;
import java.sql.Statement;
public class DataSourceTest {
  public void c3p0DataSourceTest() {
    Connection conn = null;
    Statement st = null;
    ResultSet rs = null;
    try {
      //获取数据库连接
      conn = C3P0_Utils.getConnection();
      String sql = "select * from bookinfo";     // 查询数据的sql语句
      st = (Statement) conn.createStatement();    //创建用于执行静态sql语句的Statement对象,st属局部变量
      rs = st.executeQuery(sql);    //执行sql查询语句,返回查询数据的结果集
      System.out.println("最后的查询结果为:");
      while(rs.next()){ //遍历结果集,取出数据
        int book_id = rs.getInt("book_id");
        String book_name = rs.getString("book_name");
        BigDecimal price = rs.getBigDecimal("price");
        Date public_date = rs.getDate("public_date");
        String store = rs.getString("store");
        //输出数据
        System.out.print("图书编号:"+book_id);
        System.out.print(",图书名称:"+book_name);
        System.out.print(",价格"+price);
        System.out.print(",出版日期"+public_date);
        System.out.print(",库存"+store);
        System.out.println();
      }
    } catch (Exception e) {
      e.printStackTrace();
    } finally {
      //释放资源
      C3P0_Utils.release(conn, st, rs);
    }
  }
  public static void main(String[] args) {
    new DataSourceTest().c3p0DataSourceTest();
  }
}

image.gif

测试结果:

image.gif

5、致谢

       感谢明哥@编程界明世隐 的技术指导!也感谢和多多一起学习交流的友友们!

相关实践学习
基于CentOS快速搭建LAMP环境
本教程介绍如何搭建LAMP环境,其中LAMP分别代表Linux、Apache、MySQL和PHP。
全面了解阿里云能为你做什么
阿里云在全球各地部署高效节能的绿色数据中心,利用清洁计算为万物互联的新世界提供源源不断的能源动力,目前开服的区域包括中国(华北、华东、华南、香港)、新加坡、美国(美东、美西)、欧洲、中东、澳大利亚、日本。目前阿里云的产品涵盖弹性计算、数据库、存储与CDN、分析与搜索、云通信、网络、管理与监控、应用服务、互联网中间件、移动服务、视频服务等。通过本课程,来了解阿里云能够为你的业务带来哪些帮助 &nbsp; &nbsp; 相关的阿里云产品:云服务器ECS 云服务器 ECS(Elastic Compute Service)是一种弹性可伸缩的计算服务,助您降低 IT 成本,提升运维效率,使您更专注于核心业务创新。产品详情: https://www.aliyun.com/product/ecs
相关文章
|
1月前
|
分布式计算 关系型数据库 数据处理
Dataphin常见问题之没有建表的权限如何解决
Dataphin是阿里云提供的一站式数据处理服务,旨在帮助企业构建一体化的智能数据处理平台。Dataphin整合了数据建模、数据处理、数据开发、数据服务等多个功能,支持企业更高效地进行数据治理和分析。
|
2天前
|
关系型数据库 MySQL 数据安全/隐私保护
使用Navicate连接Mysql过程详解
使用Navicate连接Mysql过程详解
11 0
|
6天前
|
网络协议 安全 Linux
IDEA通过内网穿透实现固定公网地址远程SSH连接本地Linux服务器
IDEA通过内网穿透实现固定公网地址远程SSH连接本地Linux服务器
|
9天前
|
SQL 安全 网络安全
IDEA DataGrip连接sqlserver 提示驱动程序无法通过使用安全套接字层(SSL)加密与 SQL Server 建立安全连接的解决方法
IDEA DataGrip连接sqlserver 提示驱动程序无法通过使用安全套接字层(SSL)加密与 SQL Server 建立安全连接的解决方法
20 0
|
10天前
|
SQL 关系型数据库 MySQL
DQL语言之连接查询(mysql)
DQL语言之连接查询(mysql)
|
14天前
|
关系型数据库 MySQL 数据安全/隐私保护
MySQL 安装及连接
MySQL 安装及连接
33 0
|
22天前
|
存储 关系型数据库 MySQL
MySQL 查询优化:提速查询效率的13大秘籍(避免使用SELECT *、分页查询的优化、合理使用连接、子查询的优化)(上)
MySQL 查询优化:提速查询效率的13大秘籍(避免使用SELECT *、分页查询的优化、合理使用连接、子查询的优化)(上)
|
24天前
|
关系型数据库 MySQL 数据安全/隐私保护
MySQL连接ERROR 2059 (HY000): Authentication plugin ‘caching_sha2_password‘ cannot be loaded
MySQL连接ERROR 2059 (HY000): Authentication plugin ‘caching_sha2_password‘ cannot be loaded
27 0
|
18天前
|
Java 开发工具 Maven
IntelliJ IDEA安装教程(超详细)
IntelliJ IDEA安装教程(超详细)
76 1
|
24天前
|
XML IDE 开发工具
别看你风吹头顶凉但你绝对没有过这样方便的插件Intellij IDEA 自带的 Vim
别看你风吹头顶凉但你绝对没有过这样方便的插件Intellij IDEA 自带的 Vim
40 0