C3p0连接池-Java(新手)
1 数据库连接池 C3p0 和 Druid 1.1 定义 : 本质上就是个容器(集合) 存放数据库连接的容器 当系统初始化以后 容器被创建 容器中就会申请一些连接对象 当用户来访问的数据库的时候 从容器中取连接对象,用户用完之后 归还 1.2 如何用:
1.2.1 标准接口 Datasource javax.sql包下 方法:getConnection();获得链接 Connection.close();归还 1.2.2 一般我们不实现这个接口 数据库厂商或者连接池厂商来实现这个接口 1.2.3 C3P0 步骤:
1 导包 两个包 c3p0-0.9.5.2.jar mchange-commons-java-0.2.12 2 定义配置文件 名称 c3p0.properties c3p0-config.xml 路径:将文件放到src目录下 3 创建核心对象 数据库连接池对象ComboPoolDataSource 4 获取链接 getConnection
例1:
package cn.Wuchuang.C3p0Druid; import com.mchange.v2.c3p0.ComboPooledDataSource; import javax.sql.DataSource;
import java.sql.Connection;
import java.sql.SQLException; public class Demo1C3P0 {
public static void main(String[] args) throws SQLException {
// 1 导包 两个包 c3p0-0.9.5.2.jar mchange-commons-java-0.2.12
// 2 定义配置文件 名称
// 路径:将文件放到src目录下
// 3 创建核心对象 数据库连接池对象ComboPoolDataSource
DataSource ds = new ComboPooledDataSource();
// 4 获取链接 getConnection
Connection conn = ds.getConnection();
System.out.println(conn+"哈哈");
}
}
例2:
package cn.Wuchuang.C3p0Druid; import com.mchange.v2.c3p0.ComboPooledDataSource; import javax.sql.DataSource;
import java.sql.Connection; public class Demo2C3P0 {
public static void main(String[] args) throws Exception {
DataSource data = new ComboPooledDataSource(); for (int i =1;i<=11;i++){
Connection conn = data.getConnection();
System.out.println(i+" "+conn);
if (i==5){
//归还连接池。
conn.close();
}
}
}
}
例3:
package cn.Wuchuang.C3p0Druid; import com.alibaba.druid.pool.DruidDataSourceFactory; import javax.sql.DataSource;
import java.io.IOException;
import java.io.InputStream;
import java.sql.Connection;
import java.util.Properties; public class Demo3Druid {
public static void main(String[] args) throws Exception {
//加载文件。
Properties pro = new Properties();
InputStream in = Demo3Druid.class.getClassLoader().getResourceAsStream("druid.properties");
pro.load(in);
//获得数据库连接池对象、
//通过DruidDataSourceFactory
DataSource dats = DruidDataSourceFactory.createDataSource(pro);
//获取链接。
Connection conn = dats.getConnection();
System.out.println(conn+"我被测试了");
}
}
例4:
package cn.Wuchuang.C3p0Druid; import org.junit.Test;
import org.springframework.jdbc.core.JdbcTemplate;
import org.springframework.jdbc.support.JdbcUtils; import java.sql.Connection;
import java.sql.PreparedStatement;
import java.sql.SQLException; public class Demo4Druid {
@Test
public void Druids(){ Connection conn = null;
PreparedStatement ppst = null;
try {
//完成一个添加操作。
//获得链接。
conn = JDBCUtils.getConnection();
//定义SQL语句。
String sql =("insert into salarys values(7,?,?)");
//获得执行的语句。
ppst = conn.prepareStatement(sql);
//给?赋值。
ppst.setInt(1,610);
ppst.setInt(2,800);
//执行SQL语句。
int i = ppst.executeUpdate();
System.out.println(i);
} catch (Exception e) {
e.printStackTrace();
}finally {
JDBCUtils.close(conn,ppst);
}
}
}
JDBC工具类:
package cn.Wuchuang.C3p0Druid; import javax.sql.DataSource;
import java.sql.*; public class JDBCUtils {
private static final String r = "root";
private static final String p = "root";
private static final String url = "jdbc:mysql:///semployee";
private static final String DRIVER = "com.mysql.jdbc.Driver";
//注册驱动。
static{
try {
Class.forName(DRIVER);
} catch (Exception e) {
e.printStackTrace();
}
}
//得到数据库链接。
public static Connection getConnection() throws Exception {
return DriverManager.getConnection(url,r,p);
} //关闭链接,执行打开的资源。
public static void close(Connection conn,Statement stmt){
if (stmt!=null){
try {
stmt.close();
} catch (Exception e) {
e.printStackTrace();
}
}
if (conn!=null){
try {
conn.close();
} catch (Exception e) {
e.printStackTrace();
}
}
}
//关闭所有打开的资源。
public static void close(Connection conn, Statement stmt, ResultSet rs){
if (stmt!=null){
try {
stmt.close();
} catch (Exception e) {
e.printStackTrace();
}
}if (conn!=null){
try {
conn.close();
} catch (Exception e) {
e.printStackTrace();
}
}
if (rs!=null){
try {
rs.close();
} catch (Exception e) {
e.printStackTrace();
}
}
}
}
C3p0连接池-Java(新手)的更多相关文章
- Java框架spring 学习笔记(十六):c3p0连接池的配置以及dao使用jdbcTemplate
连接池可以大大提高数据库的性能和连接速度,将那些已连接的数据库连接存放在一个连接池里,以后别人要连接数据库的时候,将不会重新建立数据库连接,直接从连接池中取出可用的连接,用户使用完毕后,会释放连接重新 ...
- java学习笔记41(数据库连接池 C3p0连接池)
在之前的学习中,我们发现,我们需要频繁的创建连接对象,用完之后还需要在关闭资源,因为这些连接对象都是占资源的,但是又不得不创建,比较繁琐,为了解决这种情况,Java出现了数据库连接池: 数据库连接池的 ...
- C3P0连接池配置(C3P0Utils.java)
配置文件 c3p0-config.xml <?xml version="1.0" encoding="UTF-8"?> <c3p0-confi ...
- java学习笔记—c3p0连接池与元数据分析(42)
第一步:导入c3p0包 第二步:在classpath目录下,创建一个c3p0-config.xml <?xml version="1.0" encoding="UT ...
- Java开发笔记(一百五十)C3P0连接池的用法
JDBC既制定统一标准兼容了多种数据库,又利用预报告堵上了SQL注入漏洞,照理说已经很完善了,可是人算不如天算,它在性能方面不尽如人意.问题出在数据库连接的管理上,按照正常流程,每次操作完数据库,都要 ...
- Java测试开发--MySql之C3P0连接池(八)
连接池C3P0! 连接池技术的目的:解决建立数据库连接耗费资源和时间很多的问题,提高性能 ! 下面以案例演示下C3P0的操作流程. 1.测试准备: ①MySql数据库一枚②database名为myte ...
- (30)java web的hibernate使用-c3p0连接池配置
hibernate支持c3p0连接池 需要导入c3p0的jar包 <!-- 配置连接驱动管理类 --> <property name="hibernate.connecti ...
- c3p0连接池]
<c3p0-config> <!-- 默认配置 --> <default-config> <property name="jdbcUrl" ...
- C3P0连接池在hibernate和spring中的配置
首先为什么要使用连接池及为什么要选择C3P0连接池,这里就不多说了,目前C3P0连接池还是比较方便.比较稳定的连接池,能与spring.hibernate等开源框架进行整合. 一.hibernate中 ...
随机推荐
- SSM 生成mapper中xml文件:未能解析映射资源:“文件嵌套异常
错误日记我就网上随便找个贴着: 错误一: org.springframework.beans.factory.BeanCreationException: Error creating bean wi ...
- iOS(Swift)学习笔记之去除UINavigationBar下方横线
本文为原创文章,转载请标明出处 // 去除UINavigationBar下方横线 navigationController.navigationBar.shadowImage = UIImage() ...
- 爬虫时伪装header信息
在爬虫时,一般需要伪装Agent信息,放在header中 1.header不是必传参数,在需要的时候进行伪装 2.header = {"User-Agent": "Moz ...
- SpringMVC在使用过程中的错误
HTTP Status 500 - Request processing failed; nested exception is org.springframework.validation.Bind ...
- 吴裕雄--python学习笔记:爬虫
import chardet import urllib.request page = urllib.request.urlopen('http://photo.sina.com.cn/') #打开网 ...
- codeforces #332 div 2 D. Spongebob and Squares
http://codeforces.com/contest/599/problem/D 题意:给出总的方格数x,问有多少种不同尺寸的矩形满足题意,输出方案数和长宽(3,5和5,3算两种) 思路:比赛的 ...
- numpy的array分割
import numpy as np A = np.arange(12).reshape(3,4) print(A) print(np.split(A,2,axis=1)) print(np.spli ...
- 是AI就躲个飞机-纯Python实现人工智能
你要的答案或许都在这里:小鹏的博客目录 代码下载:Here. 很久以前微信流行过一个小游戏:打飞机,这个游戏简单又无聊.在2017年来临之际,我就实现一个超级弱智的人工智能(AI),这货可以躲避从屏幕 ...
- React Docs(1)
安装 React在codepen上提供了一个Hello,World项目事例,只需打开网站,即可尝试React.另外还提供了一个html文件的Hello,World项目,项目中引用CDN的react.j ...
- 【系统篇】Archlinux系统安装
本教程为最新安装Linux的教程,想看更详细可以到我B站主页看视频教程 ArchLinux安装配置手册[系统篇] 本教程参考自 https://wiki.archlinux.org/index.php ...