转载
</h1> <div class="clear"></div> <div class="postBody">
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的结合让开发更加简便~~~
</div> <div class="postDesc">posted @
</div><!--end: topics 文章、评论容器-->
</div><!--end: forFlow --> </div><!--end: mainContent 主体内容容器--> <div id="sideBar"> <div id="sideBarMain">
<div id="blog-calendar" style="">
|
|||||||||
日 | 一 | 二 | 三 | 四 | 五 | 六 | |||
---|---|---|---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | 5 | 6 | 7 | |||
8 | 9 | 10 | 11 | 12 | 13 | 14 | |||
15 | 16 | 17 | 18 | 19 | 20 | 21 | |||
22 | 23 | 24 | 25 | 26 | 27 | 28 | |||
29 | 30 | 1 | 2 | 3 | 4 | 5 | |||
6 | 7 | 8 | 9 | 10 | 11 | 12 |
<div id="leftcontentcontainer"> <div id="blog-sidecolumn">
<script>loadBlogSideColumn();</script> </div> </div><!--end: sideBarMain --> </div><!--end: sideBar 侧边栏容器 --> <div class="clear"></div> </div>
昵称:
退出 订阅评论
[Ctrl+Enter快捷键提交]
【推荐】零基础轻松玩转华为云产品,获壕礼加返百元大礼
【推荐】天翼云开学季,学生必备云套餐,每月仅需9块9
【推荐】华为云文字识别资源包重磅上市,1元万次限时抢购
【福利】git pull && cherry-pick 博客园&华为云百万代金券
· c3p0和QueryRunner的结合使用,让开发更加简便
· c3p0 数据库连接池
· C3P0--数据库连接池
· c3p0连接池
· C3P0数据库连接池的java实现
· 苹果1TB版iPad Pro国行宣布降价近2000元:11英寸版10618元
· Uber辩称司机不是业务核心 无法将其视作正式雇员
· 多州出现神秘肺部疾病后 特朗普呼吁FDA禁止非传统烟草口味电子烟
· 大者恒大!内存条市场金士顿以72%独占鳌头 第二名仅5%
· 港交所拟296亿英镑收购伦敦交易所
» 更多新闻...