详解IDEA2020新建spring项目和c3p0连接池的创建和使用

 更新时间:2021年08月10日 10:26:10   作者:D_gloria?  
C3P0是一个开源的JDBC连接池,它实现了数据源和JNDI绑定,本文就使用Spring实现,具有一定的参考价值,感兴趣的小伙伴们可以参考一下

前言

        C3P0是一个开源的JDBC连接池,它实现了数据源和JNDI绑定,支持JDBC3规范和JDBC2的标准扩展,目前使用它的开源项目有Hibernate,Spring等。

 1、环境准备:maven配置

         打开idea,点击“+”新建项目,选择Spring,点击next,填写项目的名称,点击finish,新的Spring项目就建好了

        新建好的spring项目目录如下,这里可以看到是没有pom.xml文件的,为了更好管理spring项目,需要配置maven环境。点击项目上方的file/settings

        点击Build,Execution,Deployment/Build Tools/Maven,将User settings file和Local repository这两处的地址改成下载的maven安装包的地址以及安装包下settings.xml配置文件的地址,点击OK

        右击项目名称,点击Add Framework Support,勾选Maven,点击OK

        添加了maven之后可以看到项目出现了熟悉的maven项目的文件夹和pom.xml文件

2、导入jar包:c3p0-0.9.5.4.jar和mysql-connector-java.jar

         右击项目名称,点击Open Modules Settings

         点击Modules/Dependencies,点击右侧“+”号,jars or directories

         选择jar包存储的路径,选中需要导入的jar包,点击OK

         可以看到目录下出现了刚刚导入的jar包,勾选它们点击OK

        打开pom.xml文件,在maven里添加mysql和c3p0这两个依赖

 3、编写测试类测试连接

        c3p0创建数据源的方法有两种:一是直接使用set将属性设置到数据源中,若后续需要更改只能通过源码更改,二是将属性写入properties文件,通过加载properties配置文件的形式创建数据源,可读写能力更强

        首先介绍第一种方法,本测试类写在Test文件夹下,主要需要注意的点有:

①driveClass现在都更新为com.mysql.cj.jdbc.Driver,而并非以前用的com.mysql.jdbc.Driver

②jdbcUrl中一定要在末尾加serverTimezone=UTC这一语句,不然就会报Caused by: com.mysql.cj.exceptions.InvalidConnectionAttributeException: The server time zone value 'Öйú±ê׼ʱ¼ä' is unrecognized or represents more than one time zone时间区错误

@Test
//测试手动创建c3p0数据源
public void test1() throws PropertyVetoException, SQLException {
    ComboPooledDataSource dataSource = new ComboPooledDataSource();
    dataSource.setDriverClass("com.mysql.cj.jdbc.Driver");
    dataSource.setJdbcUrl("jdbc:mysql://localhost:3306/spring-test?useUnicode=true&characterEncoding=utf-8&serverTimezone=UTC");
    dataSource.setUser("root");
    dataSource.setPassword("");
    Connection connection = dataSource.getConnection();
    System.out.println(connection);
    connection.close();
}

        运行后的结果如下,可以看到成功输出了connection对象的地址,说明连接创建成功

         第二种方法,先在test文件夹的resources下新建properties配置文件,然后在properties里设置以下属性值

jdbc.driver=com.mysql.cj.jdbc.Driver
jdbc.url=jdbc:mysql://localhost:3306/spring-test?useUnicode=true&characterEncoding=utf-8&serverTimezone=UTC
jdbc.username=root
jdbc.password=

         本测试方法和第一种测试方法写在同一个测试类里

@Test
//测试手动创建c3p0数据源(加载properties配置文件形式)
public void test2() throws PropertyVetoException, SQLException {
    //读取配置文件
    ResourceBundle rb = ResourceBundle.getBundle("jdbc");
    String driver = rb.getString("jdbc.driver");
    String url = rb.getString("jdbc.url");
    String username = rb.getString("jdbc.username");
    String password = rb.getString("jdbc.password");
 
    //创建数据源对象,设置连接参数
    ComboPooledDataSource dataSource = new ComboPooledDataSource();
    dataSource.setDriverClass(driver);
    dataSource.setJdbcUrl(url);
    dataSource.setUser(username);
    dataSource.setPassword(password);
 
    Connection connection = dataSource.getConnection();
    System.out.println(connection);
    connection.close();
}

         运行之后可以看到同样成功输出connection对象的地址,说明连接创建成功

到此这篇关于详解IDEA2020新建spring项目和c3p0连接池的创建和使用的文章就介绍到这了,更多相关spring创建c3p0连接池内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!

相关文章

  • 使用Spirng Boot Admin监控Spring Cloud应用项目

    使用Spirng Boot Admin监控Spring Cloud应用项目

    这篇文章主要介绍了使用Spirng Boot Admin监控Spring Cloud应用项目,小编觉得挺不错的,现在分享给大家,也给大家做个参考。一起跟随小编过来看看吧
    2018-05-05
  • SpringBoot如何优雅的处理重复请求

    SpringBoot如何优雅的处理重复请求

    对于一些用户请求,在某些情况下是可能重复发送的,如果是查询类操作并无大碍,但其中有些是涉及写入操作的,一旦重复了,可能会导致很严重的后果,所以本文给大家介绍了SpringBoot优雅的处理重复请求的方法,需要的朋友可以参考下
    2023-12-12
  • JVM类加载机制原理及用法解析

    JVM类加载机制原理及用法解析

    这篇文章主要介绍了JVM类加载机制原理及用法解析,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下
    2019-10-10
  • Springboot 启动之后初始化资源的几种方法

    Springboot 启动之后初始化资源的几种方法

    在我们实际工作中,总会遇到这样需求,在项目启动的时候需要做一些初始化的操作,比如初始化线程池,提前加载好加密证书等,本文主要介绍了Springboot 启动之后初始化资源的几种方法,感兴趣的可以了解一下
    2024-01-01
  • 全网最深分析SpringBoot MVC自动配置失效的原因

    全网最深分析SpringBoot MVC自动配置失效的原因

    这篇文章主要介绍了全网最深分析SpringBoot MVC自动配置失效的原因,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2020-07-07
  • Java使用hutool实现文件大小的友好输出

    Java使用hutool实现文件大小的友好输出

    这篇文章主要为大家详细介绍了Java如何使用hutool实现文件大小的友好输出,文中的示例代码讲解详细,具有一定的学习价值,感兴趣的小伙伴可以了解下
    2023-11-11
  • springboot配置templates直接访问的实现

    springboot配置templates直接访问的实现

    这篇文章主要介绍了springboot配置templates直接访问的实现方式,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教
    2021-12-12
  • java 中List删除实例详解

    java 中List删除实例详解

    这篇文章主要介绍了java 中List删除实例详解的相关资料,需要的朋友可以参考下
    2017-05-05
  • Window搭建部署RocketMQ步骤详解

    Window搭建部署RocketMQ步骤详解

    这篇文章主要介绍了Window搭建部署RocketMQ步骤详解,RocketMq是一个由阿里巴巴开源的消息中间件,脱胎去阿里每部使用的MetaQ,在设计上借鉴了Kafka。,需要的朋友可以参考下
    2019-06-06
  • SpringBoot配置类编写过程图解

    SpringBoot配置类编写过程图解

    这篇文章主要介绍了SpringBoot配置类编写过程图解,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下
    2019-11-11

最新评论