C3p0数据库连接池的使用

本文涉及的产品
云数据库 RDS MySQL,集群系列 2核4GB
推荐场景:
搭建个人博客
RDS MySQL Serverless 基础系列,0.5-2RCU 50GB
RDS MySQL Serverless 高可用系列,价值2615元额度,1个月
简介: 1:首先介绍c3p0的一般使用用法,这种用法练习使用,当然工作的时候使用第二种xml配置完成c3p0的使用。 c3p0的网址:http://www.mchange.com/projects/c3p0/   1.1:第一种方式使用c3p0:     使用编码方式实现c3p0数据库连接池,练习学习使用的方式     1.1.1:创建数据库和数据表,省略。

1:首先介绍c3p0的一般使用用法,这种用法练习使用,当然工作的时候使用第二种xml配置完成c3p0的使用。

c3p0的网址:http://www.mchange.com/projects/c3p0/

  1.1:第一种方式使用c3p0:

    使用编码方式实现c3p0数据库连接池,练习学习使用的方式

    1.1.1:创建数据库和数据表,省略。

    1.1.2:引包,如下所示,因为需要连接数据库,所以必须加上mysql的驱动包
       c3p0-0.9.1.2.jar
       mysql-connector-java-5.1.12-bin.jar

    1.1.3:创建实体类,例如User.java,源码如下所示:

 1 package com.bie.po;
 2 /** 
 3 * @author BieHongLi 
 4 * @version 创建时间:2017年3月11日 下午12:55:21 
 5 * 
 6 */
 7 public class User {
 8 
 9     private int id;
10     private String name;
11     private String password;
12     private String email;
13     private String phone;
14     public int getId() {
15         return id;
16     }
17     public void setId(int id) {
18         this.id = id;
19     }
20     public String getName() {
21         return name;
22     }
23     public void setName(String name) {
24         this.name = name;
25     }
26     public String getPassword() {
27         return password;
28     }
29     public void setPassword(String password) {
30         this.password = password;
31     }
32     public String getEmail() {
33         return email;
34     }
35     public void setEmail(String email) {
36         this.email = email;
37     }
38     public String getPhone() {
39         return phone;
40     }
41     public void setPhone(String phone) {
42         this.phone = phone;
43     }
44     @Override
45     public String toString() {
46         return "User [id=" + id + ", name=" + name + ", password=" + password + ", email=" + email + ", phone=" + phone
47                 + "]";
48     }
49     
50     
51 }

    1.1.4:创建好实体类之后就可以进行测试c3p0了,这里使用junit进行测试;源码如下所示:

 1 package com.bie.test;
 2 
 3 import java.beans.PropertyVetoException;
 4 import java.sql.Connection;
 5 import java.sql.PreparedStatement;
 6 import java.sql.ResultSet;
 7 import java.sql.SQLException;
 8 import java.util.ArrayList;
 9 import java.util.List;
10 
11 import org.junit.Test;
12 
13 import com.bie.po.User;
14 import com.mchange.v2.c3p0.ComboPooledDataSource;
15 
16 /** 
17 * @author BieHongLi 
18 * @version 创建时间:2017年3月11日 下午12:40:11 
19 * 
20 */
21 public class C3p0Test {
22 
23     //使用编码方式实现c3p0数据库连接池
24     @Test
25     public void TestC3p0() throws PropertyVetoException, SQLException{
26         //第一步:创建连接池核心工具类
27         ComboPooledDataSource dataSource=new ComboPooledDataSource();
28         //第二步:连接池,url,驱动,账号,密码,初始连接数,最大连接数
29         dataSource.setJdbcUrl("jdbc:mysql:///test");//设置url
30         dataSource.setDriverClass("com.mysql.jdbc.Driver");//设置驱动
31         dataSource.setUser("root");//mysql的账号
32         dataSource.setPassword("123456");//mysql的密码
33         dataSource.setInitialPoolSize(6);//初始连接数,即初始化6个连接
34         dataSource.setMaxPoolSize(50);//最大连接数,即最大的连接数是50
35         dataSource.setMaxIdleTime(60);//最大空闲时间
36         
37         //第三步:从连接池对象中获取数据库连接
38         Connection con=dataSource.getConnection();
39         String sql="select * from user ";
40         PreparedStatement ps=con.prepareStatement(sql);
41         ResultSet rs=ps.executeQuery();
42         
43         List<User> list=new ArrayList<User>();
44         while(rs.next()){
45             User user=new User();
46             user.setId(rs.getInt("id"));
47             user.setName(rs.getString("name"));
48             user.setPassword(rs.getString("password"));
49             user.setEmail(rs.getString("email"));
50             user.setPhone(rs.getString("phone"));
51             list.add(user);
52         }
53         
54         System.out.println(list);
55     }
56 
57 }

  1.2:第二种方式:

    使用配置文件xml方式完成c3p0数据库连接池的应用,是工作之后经常使用的方式:

    1.2.1:在src目录下面创建c3p0-config.xml这个文件名,文件名必须是这个。代码如下所示:

 1 <c3p0-config>
 2     
 3     <!-- c3p0默认配置,下面还可以配置多个数据库 -->
 4     <default-config>
 5         <property name="jdbcUrl">jdbc:mysql://localhost:3306/test
 6         </property>
 7         <property name="driverClass">com.mysql.jdbc.Driver</property>
 8         <property name="user">root</property>
 9         <property name="password">123456</property>
10         <property name="initialPoolSize">6</property>
11         <property name="maxPoolSize">50</property>
12         <property name="maxIdleTime">1000</property>
13     </default-config>
14 
15 </c3p0-config>

    1.2.2:开始使用junit测试,源码如下,自动读取上面的配置文件c3p0-config.xml;所以切记这个配置文件c3p0-config.xml这个名称必须写成这个哦~~~

 1 package com.bie.test;
 2 
 3 import java.beans.PropertyVetoException;
 4 import java.sql.Connection;
 5 import java.sql.PreparedStatement;
 6 import java.sql.ResultSet;
 7 import java.sql.SQLException;
 8 import java.util.ArrayList;
 9 import java.util.List;
10 
11 import org.junit.Test;
12 
13 import com.bie.po.User;
14 import com.mchange.v2.c3p0.ComboPooledDataSource;
15 
16 /** 
17 * @author BieHongLi 
18 * @version 创建时间:2017年3月11日 下午12:40:11 
19 * 
20 */
21 public class C3p0Test2 {
22 
23     //使用编码方式实现c3p0数据库连接池
24     @Test
25     public void TestXml() throws PropertyVetoException, SQLException{
26         //第一步:创建连接池核心工具类
27         ComboPooledDataSource dataSource=new ComboPooledDataSource();
28         
29         //第三步:从连接池对象中获取数据库连接
30         Connection con=dataSource.getConnection();
31         String sql="select * from user ";
32         PreparedStatement ps=con.prepareStatement(sql);
33         ResultSet rs=ps.executeQuery();
34         
35         List<User> list=new ArrayList<User>();
36         while(rs.next()){
37             User user=new User();
38             user.setId(rs.getInt("id"));
39             user.setName(rs.getString("name"));
40             user.setPassword(rs.getString("password"));
41             user.setEmail(rs.getString("email"));
42             user.setPhone(rs.getString("phone"));
43             list.add(user);
44         }
45         
46         System.out.println("~~~"+list);
47     }
48 
49 }

方式一和方式二都是使用一个数据库和数据表,演示效果如下所示:


努力ing,校招开始咯,加油!!!~~~

下一篇,c3p0和QueryRunner的结合让开发更加简便~~~

相关实践学习
如何在云端创建MySQL数据库
开始实验后,系统会自动创建一台自建MySQL的 源数据库 ECS 实例和一台 目标数据库 RDS。
全面了解阿里云能为你做什么
阿里云在全球各地部署高效节能的绿色数据中心,利用清洁计算为万物互联的新世界提供源源不断的能源动力,目前开服的区域包括中国(华北、华东、华南、香港)、新加坡、美国(美东、美西)、欧洲、中东、澳大利亚、日本。目前阿里云的产品涵盖弹性计算、数据库、存储与CDN、分析与搜索、云通信、网络、管理与监控、应用服务、互联网中间件、移动服务、视频服务等。通过本课程,来了解阿里云能够为你的业务带来哪些帮助 &nbsp; &nbsp; 相关的阿里云产品:云服务器ECS 云服务器 ECS(Elastic Compute Service)是一种弹性可伸缩的计算服务,助您降低 IT 成本,提升运维效率,使您更专注于核心业务创新。产品详情: https://www.aliyun.com/product/ecs
目录
相关文章
|
2月前
|
SQL 监控 Java
C3P0数据库连接池
C3P0数据库连接池
125 0
|
Java 数据库连接 数据库
一篇文章学会学会c3p0数据库连接池~
一篇文章学会学会c3p0数据库连接池~
282 0
|
SQL 缓存 Java
C3P0-数据库连接池解读
C3P0-数据库连接池解读
144 0
|
SQL 监控 druid
jdbc数据库连接池C3P0和Druid德鲁伊,Java与MySQL数据库交互
jdbc数据库连接池C3P0和Druid德鲁伊,Java与MySQL数据库交互
321 1
jdbc数据库连接池C3P0和Druid德鲁伊,Java与MySQL数据库交互
|
XML 数据库 数据格式
idea使用c3p0数据库连接池无法加载配置文件xml,配置文件放置的位置
idea使用c3p0数据库连接池无法加载配置文件xml,配置文件放置的位置
297 0
idea使用c3p0数据库连接池无法加载配置文件xml,配置文件放置的位置
|
XML Java 数据库连接
JDBC学习(六):使用c3p0数据库连接池连接数据库
JDBC学习(六):使用c3p0数据库连接池连接数据库
123 0
|
XML 关系型数据库 MySQL
IDEA使用C3P0连接Mysql数据库
IDEA使用C3P0连接Mysql数据库
IDEA使用C3P0连接Mysql数据库
|
SQL druid Oracle
在项目中使用c3p0作为数据库连接池,被技术总监怼了
数据库连接是一项非常关键的、有限的、昂贵的资源,这一点在多用户的网页应用程序中体现得尤为突出。
在项目中使用c3p0作为数据库连接池,被技术总监怼了
|
Java 关系型数据库 MySQL
MySQL---数据库从入门走向大神系列(十四)-ComboPooledDataSource(C3P0连接池配置)
MySQL---数据库从入门走向大神系列(十四)-ComboPooledDataSource(C3P0连接池配置)
282 0