Druid数据库连接池
一、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数据库连接池的更多相关文章
- Druid数据库连接池配置
DRUID是阿里巴巴开源平台上一个数据库连接池实现,它结合了C3P0.DBCP.PROXOOL等DB池的优点,同时加入了日志监控,可以很好的监控DB池连接和SQL的执行情况,可以说是针对监控而生的DB ...
- Druid数据库连接池源码分析
上一篇文章重点介绍了一下Java的Future模式,最后意淫了一个数据库连接池的场景.本想通过Future模式来防止,当多个线程同时获取数据库连接时各自都生成一个,造成资源浪费.但是忽略了一个根本的功 ...
- Spring Boot [使用 Druid 数据库连接池]
导读 最近一段时间比较忙,以至于很久没有更新Spring Boot系列文章,恰好最近用到Druid, 就将Spring Boot 使用 Druid作为数据源做一个简单的介绍. Druid介绍: Dru ...
- Druid数据库连接池就这么简单
前言 本章节主要讲解Druid数据库连接池,为什么要学Druid数据库连接池呢?? 我的知识储备数据库连接池有两种->C3P0,DBCP,可是现在看起来并不够用阿~当时学习C3P0的时候,觉得这 ...
- Druid 数据库连接池
druid 数据库连接池 由阿里提供 步骤 1 导包 durid1.0.9 jar 包 2 定义配置文件 必须是 properties文件 名字任意 位置也任意 3 获得数据库连接池对象 通过 Dur ...
- 阿里druid数据库连接池配置
<?xml version="1.0" encoding="UTF-8"?> <beans xmlns="http://www.sp ...
- 【spring boot】15.spring boot项目 采用Druid数据库连接池,并启用druid监控功能
在http://www.cnblogs.com/sxdcgaq8080/p/9039442.html的基础上,来看看spring boot项目中采用Druid连接池. GitHub地址:示例代码 == ...
- Spring Boot集成Druid数据库连接池
1. 前言 Druid数据库连接池由阿里巴巴开源,号称是java语言中最好的数据库连接池,是为监控而生的.Druid的官方地址是:https://github.com/alibaba/druid 通过 ...
- 基于Druid数据库连接池的DBUtil工具类
工具类 DruidUtil.java package com.zzuli.util; import com.alibaba.druid.pool.DruidDataSourceFactory; imp ...
- springboot2配置druid数据库连接池
注意配置以下的依赖: <!-- 引入druid数据源--> <dependency> <groupId>com.alibaba</groupId> &l ...
随机推荐
- 【window】Windows10下为PHP安装redis扩展
操作: 步骤1:D:\wamp\bin\apache\apache2.4.9\bin/php.ini中添加 ; php_redis extension=php_igbinary.dll extensi ...
- day11---函数对象、名称空间、作用域、闭包函数
一.函数对象: 定义:函数对象就是函数名,函数名就是存放了函数的内存地址,存放了内存地址的变量就是对象 函数对象的应用: 可以直接被引用:(fn = cp_fn) 可以当做参数传递传递: comput ...
- Linux—日志查看(测试人员)
备注:在筛选语句后面加“--col”可以高亮显示查询结果中的关键字 cd /home/admin/logs/服务器名 #进入日志目录(错误日志文件:common-error.log),路径因公司而定 ...
- [TPYBoard - Micropython之会python就能做硬件 8] 学习使用超声波模块制作避障小车
转载请注明:@小五义 http://www.cnblogs.com/xiaowuyi 欢迎加入讨论群 64770604 一.实验器材 1.TPYboard V102板 一块 2.电机驱动模块L2 ...
- mysql 索引原理
一.索引的本质 MySQL官方对索引的定义为:索引(Index)是帮助MySQL高效获取数据的数据结构.提取句子主干,就可以得到索引的本质:索引是数据结构. 我们知道,数据库查询是数据库的最主要功能之 ...
- Redis学习之SDS源码分析
一.SDS的简单介绍 SDS:简单动态字符串(simple dynamic string) 1)SDS是Redis默认的字符表示,比如包含字符串值的键值对都是在底层由SDS实现的 2)SDS用来保存数 ...
- [Spark][kafka]kafka 生产者,消费者 互动例子
[Spark][kafka]kafka 生产者,消费者 互动例子 # pwd/usr/local/kafka_2.11-0.10.0.1/bin 创建topic:# ./kafka-topics.sh ...
- 快看Sample代码,速学Swift语言(3)-运算符
运算符是用来检查,更改或组合值的特殊符号或短语.Swift提供的很多常规的运算符,如+.-.*./.%.=.==等,以及逻辑运算的&&.||等等,基本上不需要重复介绍,我们在这里只需要 ...
- 一次linux服务器黑客入侵后处理
场景: 周一上班centos服务器ssh不可用,web和数据库等应用不响应.好在vnc可以登录 使用last命令查询,2号之前的登录信息已被清空,并且sshd文件在周六晚上被修改,周日晚上2点服务器 ...
- PySpider框架的基本用法
pyspider安装: 3.7之后无法正常使用,使用可以下载Python3.6或以下,或者修改pyspider内部代码 ———————————————————————————————————————— ...