C3P0 数据库连接池之一

C3P0连接池

11.先导入jar包 2 * c3p0-0.9.1.2.jar 3 42.提供了类ComboPooledDataSource 5 * new ComboPooledDataSource() 6 * 设置4大参数 7 cpds.setDriverClass( "com.mysql.jdbc.Driver" ); 8 cpds.setJdbcUrl( "jdbc:mysql:///day16" ); 9 cpds.setUser("root"); 10 cpds.setPassword("root"); 11 123.编写C3P0的配置文件 13 * C3P0默认去自己去找XML的文件,XML文件名称是(c3p0-config.xml) 14 * 把配置文件放在src的目录下 15 164.编写配置文件内容 17 <?xml version="1.0" encoding="UTF-8"?> 18 <c3p0-config> 19 <default-config> 20 <!-- 配置4大参数 --> 21 <property name="driverClass">com.mysql.jdbc.Driver</property> 22 <property name="jdbcUrl">jdbc:mysql:///day16</property> 23 <property name="user">root</property> 24 <property name="password">root</property> 25 </default-config> 26 27 <named-config name="myoracle"> 28 <!-- 配置4大参数 --> 29 <property name="driverClass">com.mysql.jdbc.Driver</property> 30 <property name="jdbcUrl">jdbc:mysql:///day16</property> 31 <property name="user">root</property> 32 <property name="password">root</property> 33 </named-config> 34 </c3p0-config> 35 36 375.代码 38 package cn.itcast.c3p0; 39 40 import java.sql.Connection; 41 import java.sql.PreparedStatement; 42 43 import org.junit.Test; 44 45 import com.mchange.v2.c3p0.ComboPooledDataSource; 46 47 import cn.itcast.utils.MyJdbcUtil; 48 49 /** 50 * 测试C3P0连接池 51 * @author Administrator 52 */ 53 public class C3p0Demo { 54 55 @Test 56 public void run1(){ 57 Connection conn = null; 58 PreparedStatement stmt = null; 59 try { 60 // 现在使用的是C3P0连接池 61 ComboPooledDataSource dataSource = new ComboPooledDataSource(); 62 // 设置4大参数 63 dataSource.setDriverClass("com.mysql.jdbc.Driver"); 64 dataSource.setJdbcUrl("jdbc:mysql:///day16"); 65 dataSource.setUser("root"); 66 dataSource.setPassword("root"); 67 68 // 可以获取连接 69 conn = dataSource.getConnection(); 70 // 剩下的操作,JDBC的操作 71 String sql = "update t_account set money = 300 where username = ?"; 72 // 预编译SQL 73 stmt = conn.prepareStatement(sql); 74 // 设置参数 75 stmt.setString(1, "美美"); 76 // 执行 77 stmt.executeUpdate(); 78 } catch (Exception e) { 79 e.printStackTrace(); 80 }finally{ 81 // 原来:释放资源,conn.close()销毁连接。 82 // 现在咱们已经使用了数据库的连接池了 conn.close()方法不是销毁了,是归还连接了。 83 MyJdbcUtil.release(conn, stmt); 84 } 85 } 86 87 /** 88 * 读取配置文件 89 * 把c3p0-conf.xml文件放在src目录下 90 * 程序默认的自动的读取该文件 91 */ 92 @Test 93 public void run2(){ 94 Connection conn = null; 95 PreparedStatement stmt = null; 96 try { 97 // 现在使用的是C3P0连接池 98 ComboPooledDataSource dataSource = new ComboPooledDataSource(); 99 100 // 可以获取连接 101 conn = dataSource.getConnection(); 102 // 剩下的操作,JDBC的操作 103 String sql = "update t_account set money = 600 where username = ?"; 104 // 预编译SQL 105 stmt = conn.prepareStatement(sql); 106 // 设置参数 107 stmt.setString(1, "美美"); 108 // 执行 109 stmt.executeUpdate(); 110 } catch (Exception e) { 111 e.printStackTrace(); 112 }finally{ 113 // 原来:释放资源,conn.close()销毁连接。 114 // 现在咱们已经使用了数据库的连接池了 conn.close()方法不是销毁了,是归还连接了。 115 MyJdbcUtil.release(conn, stmt); 116 } 117 } 118 }
点赞
收藏

评论区

加载中...

相关推荐

MySQL:[Err] 1292 - Incorrect datetime value: ‘0000-00-00 00:00:00‘ for column ‘CREATE_TIME‘ at row 1

文章目录问题用navicat导入数据时,报错:原因这是因为当前的MySQL不支持datetime为0的情况。解决修改sql\mode:sql\mode:SQLMode定义了MySQL应支持的SQL语法、数据校验等,这样可以更容易地在不同的环境中使用MySQL。全局s

Oracle 分组与拼接字符串同时使用

SELECTT.,ROWNUMIDFROM(SELECTT.EMPLID,T.NAME,T.BU,T.REALDEPART,T.FORMATDATE,SUM(T.S0)S0,MAX(UPDATETIME)CREATETIME,LISTAGG(TOCHAR(

MySQL部分从库上面因为大量的临时表tmp_table造成慢查询

背景描述Time:20190124T00:08:14.70572408:00User@Host:@Id:Schema:sentrymetaLast_errno:0Killed:0Query_time:0.315758Lock_

皕杰报表之UUID

​在我们用皕杰报表工具设计填报报表时,如何在新增行里自动增加id呢?能新增整数排序id吗?目前可以在新增行里自动增加id,但只能用uuid函数增加UUID编码,不能新增整数排序id。uuid函数说明:获取一个UUID,可以在填报表中用来创建数据ID语法:uuid()或uuid(sep)参数说明:sep布尔值,生成的uuid中是否包含分隔符'',缺省为

KVM调整cpu和内存

一.修改kvm虚拟机的配置1、virsheditcentos7找到“memory”和“vcpu”标签,将<namecentos7</name<uuid2220a6d1a36a4fbb8523e078b3dfe795</uuid

Twitter的分布式自增ID算法snowflake (Java版)

概述分布式系统中,有一些需要使用全局唯一ID的场景,这种时候为了防止ID冲突可以使用36位的UUID,但是UUID有一些缺点,首先他相对比较长,另外UUID一般是无序的。有些时候我们希望能使用一种简单一些的ID,并且希望ID能够按照时间有序生成。而twitter的snowflake解决了这种需求,最初Twitter把存储系统从MySQL迁移

C3P0 数据库连接池之一 - HelloWorld