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中 ...
随机推荐
- TNS-04612: "orcl--117-118" 的 RHS 为空
安装数据库时,TNS-04612: "orcl--117-118" 的 RHS 为空 解决办法: 把 D:\app\xxx\product\11.2.0\dbhome_1\NETW ...
- Python爬虫-selenium的使用(2)
使用selenium打开chrome浏览器百度进行搜索 12345678910111213141516171819202122232425 from selenium import webdriver ...
- res文件夹及xml资源文件详解
目录 一.values文件:存放字符串(strings).颜色(colors).尺寸(dimens).数组(arrays).样式(styles类似于CSS文件).类型等资源 二.drawable:存放 ...
- python __import__动态模块
1.只限解释器内部自己使用. 条件:test.lianx_2.py中的代码: class a(object): def __init__(self,name): self.name=name def ...
- MyBatis连接MySQL8配置
<dependency> <groupId>mysql</groupId> <artifactId>mysql-connector-java</a ...
- Spotlight 监控工具使用
监控MySQL数据库性能的工具:Spotlight on MySQL <转载> 我们的服务器数据库:是在windows2003上. 这款工具非常的花哨,界面很漂亮,自带报警. 1.创 ...
- ubuntu采用apt-get安装pure-ftpd
apt-get install pure-ftpdcd /etc/pure-ftpd/auth #开启虚拟账户登陆;ln -s 60auth ../conf/PureDB 60auth #查看虚拟账户 ...
- Protobuf 简介及简单应用
Protobuf 是 protocol buffers 的缩写. 根据官网的说法, protocol buffers 与平台无关, 与语言无关, 实现数据序列化的一种手段. 正如名字一样, proto ...
- Emacs key bindings for vim users
Emacs key bindings for vim users | Scarletsky 盒子 盒子 博客 分类 标签 关于 RSS 搜索 文章目录 简介 Emacs 是一个文本编辑器,号称是伪装成 ...
- Centos 7 中 部署 asp.net core 3.0 + nginx + mongodb 的一些新手简单入门,非docker
目录 零.准备工作 一.部署Mongodb 1.安装Mongodb 2.创建mongodb的数据目录 3.设置目录权限 4.设置mongodb启动 5.修改mongodb的配置文件 6.启动Mongo ...