IT序号网

C3p0数据库连接池的使用

developer 2021年06月03日 数据库 328 0
1:首先介绍c3p0的一般使用用法,这种用法练习使用,当然工作的时候使用第二种xml配置完成c3p0的使用。

c3p0的网址:IT虾米网

  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 }

方式一和方式二都是使用一个数据库和数据表

评论关闭
IT序号网

微信公众号号:IT虾米 (左侧二维码扫一扫)欢迎添加!