一、Druid连接池的创建

package cn.zhouzhou;

import java.io.IOException;
import java.io.InputStream;
import java.sql.Connection;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.util.Properties; import javax.sql.DataSource; import com.alibaba.druid.pool.DruidDataSource;
import com.alibaba.druid.pool.DruidDataSourceFactory;
import com.mchange.v2.c3p0.ComboPooledDataSource; /*
*一、Druid连接池?
* 和之前的c3p0一样,连接池。
* 阿里的产品。
*
*二、怎么用?
*
* 1.导包
* 将【druid-1.0.9 jar】导入到lib目录中。
*
* 2.定义配置文件 .properties 仅此一种格式。
* 1.【druid.properties】可以放在任意位置。------------------------->里面的数据库 修改成自己要用的!
*
       3.加载文件? 
* Properties pro01=new Properties();
* InputStream in01=Druid连接池.class.getClassLoader().getResourceAsStream("druid.properties");
* pro01.load(in01);
*
* 4.获得连接池对象
* DataSource da01=DruidDataSourceFactory.createDataSource(pro01);
*
* 5.获取连接
* Connection con01=da01.getConnection();
*
*/
public class Druid连接池 {
public static void main(String[] args) throws Exception { Properties pro01=new Properties();//1.加载文件 InputStream in01=Druid连接池.class.getClassLoader().getResourceAsStream("druid.properties");//2.通过流的方式获取文件 pro01.load(in01); DataSource da01=DruidDataSourceFactory.createDataSource(pro01);//3.连接池对象 Connection con01=da01.getConnection();//4.获取连接 System.out.println(con01);//4.打印地址,验证是否连接成功 String sql01="select * from shop";
PreparedStatement pr01=con01.prepareStatement(sql01);
ResultSet rs01=pr01.executeQuery();
while (rs01.next()) {
System.out.println(rs01.getInt(1)+" "+rs01.getString(2));
} in01.close(); //关闭流
} }

二、改良版Druid连接池

  我们发现  在加载文件的时候太复杂,能否将其封装成一个工具类,方便使用。

package JdbcUtils;

import java.io.IOException;
import java.sql.Connection;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.sql.Statement;
import java.util.Properties; import javax.sql.DataSource; import com.alibaba.druid.pool.DruidDataSourceFactory; /*
* 封装一个Druid的工具类 Jdbc
*
*/
public class Jdbc { private static DataSource ds; //1.定义成员变量 DataSource static{
try
{ //2.加载配置文件 获得连接池
Properties pro01=new Properties();
pro01.load(Jdbc.class.getClassLoader().getResourceAsStream("druid.properties"));
ds=DruidDataSourceFactory.createDataSource(pro01);
} catch (Exception e) {
e.printStackTrace();
} } public static Connection getConnection() throws SQLException{ //获得连接
return ds.getConnection();
} public static void close(Statement start,Connection con) { //释放资源
if (start!=null) {
try {
start.close();
} catch (SQLException e) {
e.printStackTrace();
}
}
if (con!=null) {
try {
con.close();
} catch (SQLException e) {
e.printStackTrace();
}
} }
public static void close(ResultSet rs,Statement start,Connection con) { //重载 继续释放资源。
if (rs!=null) {
try {
rs.close();
} catch (SQLException e) {
e.printStackTrace();
}
}
if (start!=null) {
try {
start.close();
} catch (SQLException e) {
e.printStackTrace();
}
}
if (con!=null) {
try {
con.close();
} catch (SQLException e) {
e.printStackTrace();
}
} } }

三、测试Jdbc 封装类。

package cn.zhouzhou;

import java.sql.Connection;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.sql.SQLException; import JdbcUtils.Jdbc; /*
* 测试我们写的封装 jdbc工具类
*
*/
public class Text01 {
public static void main(String[] args) {
Connection con01=null;
PreparedStatement ps=null;
try { con01=Jdbc.getConnection();//获得连接 String sql01="insert into shop values(999,?,?,'刚把对!')";//定义SQL语句 占位子节符 在shop中 添加一条数据 ps=con01.prepareStatement(sql01); //获得接口 执行平台 ps.setString(1, "haha"); //设置键值对
ps.setDouble(2, 66666); int i=ps.executeUpdate();//执行SQL语句
System.out.println(i); } catch (SQLException e)
{
e.printStackTrace();
}finally{
Jdbc.close(ps, con01);
} } }

Druid数据库连接池的更多相关文章

  1. Druid数据库连接池配置

    DRUID是阿里巴巴开源平台上一个数据库连接池实现,它结合了C3P0.DBCP.PROXOOL等DB池的优点,同时加入了日志监控,可以很好的监控DB池连接和SQL的执行情况,可以说是针对监控而生的DB ...

  2. Druid数据库连接池源码分析

    上一篇文章重点介绍了一下Java的Future模式,最后意淫了一个数据库连接池的场景.本想通过Future模式来防止,当多个线程同时获取数据库连接时各自都生成一个,造成资源浪费.但是忽略了一个根本的功 ...

  3. Spring Boot [使用 Druid 数据库连接池]

    导读 最近一段时间比较忙,以至于很久没有更新Spring Boot系列文章,恰好最近用到Druid, 就将Spring Boot 使用 Druid作为数据源做一个简单的介绍. Druid介绍: Dru ...

  4. Druid数据库连接池就这么简单

    前言 本章节主要讲解Druid数据库连接池,为什么要学Druid数据库连接池呢?? 我的知识储备数据库连接池有两种->C3P0,DBCP,可是现在看起来并不够用阿~当时学习C3P0的时候,觉得这 ...

  5. Druid 数据库连接池

    druid 数据库连接池 由阿里提供 步骤 1 导包 durid1.0.9 jar 包 2 定义配置文件 必须是 properties文件 名字任意 位置也任意 3 获得数据库连接池对象 通过 Dur ...

  6. 阿里druid数据库连接池配置

    <?xml version="1.0" encoding="UTF-8"?> <beans xmlns="http://www.sp ...

  7. 【spring boot】15.spring boot项目 采用Druid数据库连接池,并启用druid监控功能

    在http://www.cnblogs.com/sxdcgaq8080/p/9039442.html的基础上,来看看spring boot项目中采用Druid连接池. GitHub地址:示例代码 == ...

  8. Spring Boot集成Druid数据库连接池

    1. 前言 Druid数据库连接池由阿里巴巴开源,号称是java语言中最好的数据库连接池,是为监控而生的.Druid的官方地址是:https://github.com/alibaba/druid 通过 ...

  9. 基于Druid数据库连接池的DBUtil工具类

    工具类 DruidUtil.java package com.zzuli.util; import com.alibaba.druid.pool.DruidDataSourceFactory; imp ...

  10. springboot2配置druid数据库连接池

    注意配置以下的依赖: <!-- 引入druid数据源--> <dependency> <groupId>com.alibaba</groupId> &l ...

随机推荐

  1. 深度学习框架PyTorch一书的学习-第六章-实战指南

    参考:https://github.com/chenyuntc/pytorch-book/tree/v1.0/chapter6-实战指南 希望大家直接到上面的网址去查看代码,下面是本人的笔记 将上面地 ...

  2. docker 3 docker安装

    centos docker安装 docker支持以下centos版本: centos 7 (64-bit) centos 6.5 (64-bit)或更高的版本 前提条件 目前,centos仅发行版中的 ...

  3. 在其他Activity中展示自定义相机拍的照片

    在使用相机拍照中,我们需要当点击了确定按钮之后,拍的照片展示在其他Activity的ImageView中,代码如下: 1.首先在自定义相机的Activity中,处理点击拍照确定按钮后的逻辑功能:将图片 ...

  4. 线程安全之CAS机制详解(分析详细,通俗易懂)

    背景介绍:假设现在有一个线程共享的变量c=0,让两个线程分别对c进行c++操作100次,那么我们最后得到的结果是200吗? 1.在线程不安全的方式下:结果可能小于200,比如当前线程A取得c的值为3, ...

  5. Android/Linux boot time分析优化

    如果需要优化boot time,就需要一个量化的工具来分析每个阶段的时间消耗.这种类型的优化特别适合使用基于timeline的图表,有着明显的时间顺序.要求不但能给出整个流程消耗的时间,还要能对流程进 ...

  6. 圆角矩形shader

    在游戏中,有时需要对一张矩形图片进行切割,绘制成圆角矩形. circelrect.vert attribute vec4 a_position; attribute vec4 a_normal; at ...

  7. 响应式卡片抽奖插件 CardShow

    GitHub: https://github.com/nzbin/CardShow/ Demo: https://nzbin.github.io/CardShow/ 前言 这个小项目(卡片秀)是一个卡 ...

  8. JqGrid分页按钮图标不显示的bug

    开发中遇到的一个小问题,记录一下,如果有朋友也遇到了相同的问题,可以少走些弯路少花点时间. 如图: 分页插件使用了JqGrid,但是分页栏里出现了问题,上一页.下一页这些按钮的图标都显示为空,记得以前 ...

  9. 3.sparkSQL整合Hive

    spark SQL经常需要访问Hive metastore,Spark SQL可以通过Hive metastore获取Hive表的元数据.从Spark 1.4.0开始,Spark SQL只需简单的配置 ...

  10. Python_复习_34

    +# 函数 —— 2天 # 函数的定义和调用 # def 函数名(形参): #函数体 #return 返回值 #调用 函数名(实参) # 站在形参的角度上 : 位置参数,*args,默认参数(陷阱), ...