服务器之家:专注于服务器技术及软件下载分享
分类导航

PHP教程|ASP.NET教程|Java教程|ASP教程|编程技术|正则表达式|C/C++|IOS|C#|Swift|Android|VB|R语言|JavaScript|易语言|vb.net|

服务器之家 - 编程语言 - Java教程 - 详解IDEA2020新建spring项目和c3p0连接池的创建和使用

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

2021-11-12 13:31D_gloria? Java教程

C3P0是一个开源的JDBC连接池,它实现了数据源和JNDI绑定,本文就使用Spring实现,具有一定的参考价值,感兴趣的小伙伴们可以参考一下

前言

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

 1、环境准备:maven配置

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

详解IDEA2020新建spring项目和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对象的地址,说明连接创建成功

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

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

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

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连接池的创建和使用

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

原文链接:https://blog.csdn.net/D_gloria/article/details/119520996
 

延伸 · 阅读

精彩推荐
  • Java教程Java8中Stream使用的一个注意事项

    Java8中Stream使用的一个注意事项

    最近在工作中发现了对于集合操作转换的神器,java8新特性 stream,但在使用中遇到了一个非常重要的注意点,所以这篇文章主要给大家介绍了关于Java8中S...

    阿杜7482021-02-04
  • Java教程Java BufferWriter写文件写不进去或缺失数据的解决

    Java BufferWriter写文件写不进去或缺失数据的解决

    这篇文章主要介绍了Java BufferWriter写文件写不进去或缺失数据的解决方案,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望...

    spcoder14552021-10-18
  • Java教程Java使用SAX解析xml的示例

    Java使用SAX解析xml的示例

    这篇文章主要介绍了Java使用SAX解析xml的示例,帮助大家更好的理解和学习使用Java,感兴趣的朋友可以了解下...

    大行者10067412021-08-30
  • Java教程Java实现抢红包功能

    Java实现抢红包功能

    这篇文章主要为大家详细介绍了Java实现抢红包功能,采用多线程模拟多人同时抢红包,文中示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙...

    littleschemer13532021-05-16
  • Java教程升级IDEA后Lombok不能使用的解决方法

    升级IDEA后Lombok不能使用的解决方法

    最近看到提示IDEA提示升级,寻思已经有好久没有升过级了。升级完毕重启之后,突然发现好多错误,本文就来介绍一下如何解决,感兴趣的可以了解一下...

    程序猿DD9332021-10-08
  • Java教程xml与Java对象的转换详解

    xml与Java对象的转换详解

    这篇文章主要介绍了xml与Java对象的转换详解的相关资料,需要的朋友可以参考下...

    Java教程网2942020-09-17
  • Java教程20个非常实用的Java程序代码片段

    20个非常实用的Java程序代码片段

    这篇文章主要为大家分享了20个非常实用的Java程序片段,对java开发项目有所帮助,感兴趣的小伙伴们可以参考一下 ...

    lijiao5352020-04-06
  • Java教程小米推送Java代码

    小米推送Java代码

    今天小编就为大家分享一篇关于小米推送Java代码,小编觉得内容挺不错的,现在分享给大家,具有很好的参考价值,需要的朋友一起跟随小编来看看吧...

    富贵稳中求8032021-07-12