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(新手)的更多相关文章

  1. Java框架spring 学习笔记(十六):c3p0连接池的配置以及dao使用jdbcTemplate

    连接池可以大大提高数据库的性能和连接速度,将那些已连接的数据库连接存放在一个连接池里,以后别人要连接数据库的时候,将不会重新建立数据库连接,直接从连接池中取出可用的连接,用户使用完毕后,会释放连接重新 ...

  2. java学习笔记41(数据库连接池 C3p0连接池)

    在之前的学习中,我们发现,我们需要频繁的创建连接对象,用完之后还需要在关闭资源,因为这些连接对象都是占资源的,但是又不得不创建,比较繁琐,为了解决这种情况,Java出现了数据库连接池: 数据库连接池的 ...

  3. C3P0连接池配置(C3P0Utils.java)

    配置文件 c3p0-config.xml <?xml version="1.0" encoding="UTF-8"?> <c3p0-confi ...

  4. java学习笔记—c3p0连接池与元数据分析(42)

    第一步:导入c3p0包 第二步:在classpath目录下,创建一个c3p0-config.xml <?xml version="1.0" encoding="UT ...

  5. Java开发笔记(一百五十)C3P0连接池的用法

    JDBC既制定统一标准兼容了多种数据库,又利用预报告堵上了SQL注入漏洞,照理说已经很完善了,可是人算不如天算,它在性能方面不尽如人意.问题出在数据库连接的管理上,按照正常流程,每次操作完数据库,都要 ...

  6. Java测试开发--MySql之C3P0连接池(八)

    连接池C3P0! 连接池技术的目的:解决建立数据库连接耗费资源和时间很多的问题,提高性能 ! 下面以案例演示下C3P0的操作流程. 1.测试准备: ①MySql数据库一枚②database名为myte ...

  7. (30)java web的hibernate使用-c3p0连接池配置

    hibernate支持c3p0连接池 需要导入c3p0的jar包 <!-- 配置连接驱动管理类 --> <property name="hibernate.connecti ...

  8. c3p0连接池]

    <c3p0-config> <!-- 默认配置 --> <default-config> <property name="jdbcUrl" ...

  9. C3P0连接池在hibernate和spring中的配置

    首先为什么要使用连接池及为什么要选择C3P0连接池,这里就不多说了,目前C3P0连接池还是比较方便.比较稳定的连接池,能与spring.hibernate等开源框架进行整合. 一.hibernate中 ...

随机推荐

  1. TNS-04612: "orcl--117-118" 的 RHS 为空

    安装数据库时,TNS-04612: "orcl--117-118" 的 RHS 为空 解决办法: 把 D:\app\xxx\product\11.2.0\dbhome_1\NETW ...

  2. Python爬虫-selenium的使用(2)

    使用selenium打开chrome浏览器百度进行搜索 12345678910111213141516171819202122232425 from selenium import webdriver ...

  3. res文件夹及xml资源文件详解

    目录 一.values文件:存放字符串(strings).颜色(colors).尺寸(dimens).数组(arrays).样式(styles类似于CSS文件).类型等资源 二.drawable:存放 ...

  4. python __import__动态模块

    1.只限解释器内部自己使用. 条件:test.lianx_2.py中的代码: class a(object): def __init__(self,name): self.name=name def ...

  5. MyBatis连接MySQL8配置

    <dependency> <groupId>mysql</groupId> <artifactId>mysql-connector-java</a ...

  6. Spotlight 监控工具使用

    监控MySQL数据库性能的工具:Spotlight on MySQL    <转载> 我们的服务器数据库:是在windows2003上. 这款工具非常的花哨,界面很漂亮,自带报警. 1.创 ...

  7. ubuntu采用apt-get安装pure-ftpd

    apt-get install pure-ftpdcd /etc/pure-ftpd/auth #开启虚拟账户登陆;ln -s 60auth ../conf/PureDB 60auth #查看虚拟账户 ...

  8. Protobuf 简介及简单应用

    Protobuf 是 protocol buffers 的缩写. 根据官网的说法, protocol buffers 与平台无关, 与语言无关, 实现数据序列化的一种手段. 正如名字一样, proto ...

  9. Emacs key bindings for vim users

    Emacs key bindings for vim users | Scarletsky 盒子 盒子 博客 分类 标签 关于 RSS 搜索 文章目录 简介 Emacs 是一个文本编辑器,号称是伪装成 ...

  10. Centos 7 中 部署 asp.net core 3.0 + nginx + mongodb 的一些新手简单入门,非docker

    目录 零.准备工作 一.部署Mongodb 1.安装Mongodb 2.创建mongodb的数据目录 3.设置目录权限 4.设置mongodb启动 5.修改mongodb的配置文件 6.启动Mongo ...