C3p0数据库连接池的使用

来源:互联网 发布:linux系统备份成iso 编辑:程序博客网 时间:2024/04/29 19:26

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     @Override45     public String toString() {46         return "User [, name=" + name + ", password=" + password + ", email=" + email + ", phone=" + phone47                 + "]";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     @Test25     public void TestC3p0() throws PropertyVetoException, SQLException{26         //第一步:创建连接池核心工具类27         ComboPooledDataSource dataSource=new ComboPooledDataSource();28         //第二步:连接池,url,驱动,账号,密码,初始连接数,最大连接数29         dataSource.setJdbcUrl("jdbc:mysql:///test");//设置url30         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);//最大连接数,即最大的连接数是5035         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     @Test25     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的结合让开发更加简便~~~

0 0
原创粉丝点击