本文共 5551 字,大约阅读时间需要 18 分钟。
1:首先介绍c3p0的一般使用用法,这种用法练习使用,当然工作的时候使用第二种xml配置完成c3p0的使用。
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 [id=" + id + ", 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 Listlist=new ArrayList ();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这个文件名,文件名必须是这个。代码如下所示:
12 3 4 5 14 15jdbc:mysql://localhost:3306/test 6 7com.mysql.jdbc.Driver 8root 9123456 106 1150 121000 13
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 Listlist=new ArrayList ();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的结合让开发更加简便~~~
转载地址:http://dhsso.baihongyu.com/