我的学习之路_第二十一章_JDBC连接池
JDBC连接池和DButils
【DBCP连接池工具类】
使用读取配置文件的方式
DBCP中有一个工厂类 BasicDataSourceFactory
工厂类中有一个静态方法
返回值为: DataSource createDataSource(Properties prop)
此方式返回的就是DataSource接口的实现类对象 BasicDataSource
创建properties集合+IO技术读取配置文件
把配置文件传入BasicDataSourceFactory 静态方法 createDataSource中
实现步骤:
1.创建properties集合+IO技术读取配置文件
2.使用类加载器,扫描包下的文件
InputStream 变量名 = DBCPUtilsReadConfig.class.getClassLoader().getResourceAsStream("传入配置文件名称")
3.创建properties集合
Properties prop = new Properties();
prop.load(is);
4.把配置文件传入 BasicDataSourceFactory静态方法 createDataSource中
DataSource 变量名= BasicDataSourceFactory.createDataSource(prpo)
【C3P0连接池的工具类】
连接规范接口 : java.sql.DataSource
接口的实现类对象 : ComboPooledDataSource
成员位置创建 : ComboPooledDataSource对象
实现代码: private static ComboPooledDataSource dataSource = new ComboPooledDataSource();
C3P0内部会自动扫描并解析xml文件,给ComboPooledDataSource设置数据量的四大信息
创建一个返回ComboPooledDataSource的方法
public static DataSource getDataSource(){
return dataSource;
}
创建一个静态方法返回Connection对象
实现代码: public static Connection getConnection(){
try {
return dataSource.getConnection();
} catch (SQLException e) {
throw new RuntimeException("获取数据库连接信息失败!");
}
}
创建一个静态方法释放资源
【DBUtils工具类】
DBUtils工具类作用:简化JDBC的发开(六步)
DBUtils有3个核心类
1.QueryRunner : 使用QueryRunner中的方法对数据库进行增删改查
2.DbUtils : 提供了大量的释放资源的方法
3.ResultSetHandler接口 : 提供了处理查询结果集的方法
●QueryRunner 类 :
构造方法: QueryRunner() 空参数构造方法
调用跟新和查询方法的时候,需要传入Connection对象
QueryRunner( DataSource ds) 带DataSource数据库连接池的构造方法
调用跟新和查询方法的时候QueryRunner会自动从DataSource实现类对象中获取数据库连接对象,使用完毕后自动归还.
成员方法: 执行增删改的成员方法
返回值: int update(Connection conn , String sql ,Object ... params) 用来执行增删改的SQL
返回值: int update(String sql , Object ... params) 用来执行增删改的SQL
参数 :
Connection conn : 数据库连接对象
String sql : 拼接的sql语句,可以使用 ? 占位符
Object...params : ?占位符的实际参数,可以使用Object[]
返回值: int 执行的有效行数
执行查询的成员方法:
返回值 : <T> T query(Connection conn , String sql , ResultSetHandier<T> rsh , Object...params)
<T> T query(String sql , ResultSetHandler<T> rsh , Object ... params)
参数: Connection conn : 数据库连接对象
String sql:拼接的sql语句,可以使用?占位符
Object...params : ?占位符的实际参数,可以使用Object[]
ResulSetHasndier<T> rsh : 用来存储查询之后的结果集,可以传入ResulSetHasndier 9种实现类对象
返回值 : <T> T :传入的ResltSetHandler实现类不同,返回的结果集也不同,使用泛型,传入什么结果集,就返回对应的类型
我的学习之路_第二十一章_JDBC连接池的更多相关文章
- 我的学习之路_第二十三章_HTML
Html : 超级文本语言 ( Hyper text Markup Language ) HTML 文件扩展名是 * .html HTML 结构都是有标签组成 通常情况下标签有开始标签和结束标签组成 ...
- 我的学习之路_第二十七章_jQuery
jQueryjs类库 把常用对象或者方法封装起来,让我们写代码效率更高 1.jQuery 2.extjs [jQuery入门] jQuery的引入: 通过script标签的src属性引入 入门: 获取 ...
- 我的学习之路_第二十章_JDBC
JDBC 使用JDBC技术,通过mysql提供的驱动程序,操作数据库 ● 1. 注册驱动 告知jvm 使用的是什么驱动程序(mysql,oracle) 使用API中的类 DriverManager中的 ...
- 我的学习之路_第二十五_javaScript
Javascript 作用:可以对表单数据进行校验,可以对页面实现一些动态效果 定义: JavaScript一种直译式脚本语言,是一种动态类型.弱类型.基于原型的语言,内置支持类型. 它的解释器被称为 ...
- 我的学习之路_第二十八章_JQuery 和validator插件
jQuery 利用jQuery进行遍历 js原生: for(var i=0;i>?;i++){ } jQuery: 方式一: 想要遍历的jQuery对象.each(function(index, ...
- 我的学习之路_第二十九章_bootstrap
bootstrap 内置了html,css,js插件为一体的前端框架 响应式布局: 设计一套页面就可以使用于很多现实设备 bootstrap: 1.入门(响应式布局的容器) 1.先进入jQuery的j ...
- 我的学习之路_第五章_Data,正则
Date 类 (时间类) 所属包:java.util.Date 构造方法: public Date() 返回的是当前时间 也就是1970-1-1到电脑目前的时间值,用毫秒来表示 public Date ...
- Introduction to 3D Game Programming with DirectX 12 学习笔记之 --- 第二十一章:环境光遮蔽(AMBIENT OCCLUSION)
原文:Introduction to 3D Game Programming with DirectX 12 学习笔记之 --- 第二十一章:环境光遮蔽(AMBIENT OCCLUSION) 学习目标 ...
- “全栈2019”Java多线程第二十一章:同步代码块产生死锁的例子
难度 初级 学习时间 10分钟 适合人群 零基础 开发语言 Java 开发环境 JDK v11 IntelliJ IDEA v2018.3 文章原文链接 "全栈2019"Java多 ...
随机推荐
- Unity 消息发送机制 解析
该博客,只为解析,解析,解析,已经整理好,已经整理好,已经整理好.代码核心原理套用网上最流行的那一套,也是最常用游戏开发适用的消息机制.这里面加上自己的一些优化,极大的修正(哈哈),实测,没问题.万一 ...
- .Net程序员学用Oracle系列(24):数据字典、死锁
1.静态数据字典 1.1.实用静态数据字典 1.2.运用静态数据字典 2.动态数据字典 2.1.实用动态性能视图 2.2.运用动态性能视图 3.死锁 3.1.定位死锁 3.2.解锁方法 3.3.强制删 ...
- MySQL开发总结(有点长..耐心看)
一.理解MySQL基本概念 1.MySQL软件:MySQL实际上就是一软件,是一工具,是关系型数据库管理系统软件 2.MySQL数据库:就是按照数据结构来组织.存储和管理数据的仓库 3.MySQL数据 ...
- hdu1054 Strategic Game 树形DP
题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=1054 思路:树形DP,用二分匹配也能解决 定义dp[root][1],表示以root 为根结点的子树且 ...
- 【JAVAWEB学习笔记】25_基础加强:类加载器、注解 @xxx和动态代理
基础加强 学习目标 案例-自定义单元测试@MyTest 案例-全局的编码的解决 一.类加载器 1.什么是类加载器,作用是什么? 类加载器就加载字节码文件(.class) 2.类加载器的种类 类加载器有 ...
- Day5模块-time和datetime模块
模块是封装一段代码来实现某种功能. 分为三类: 1.自定义模块 2.标准库,内置模块 3.开源模块 -------------------------------------------------- ...
- ubuntu16.04的下载安装
工具/原料 ubuntu-16.04-desktop-amd64.iso ubuntu-16.04-desktop-i386.iso UltraISO最新版 (自己找渠道去下载,用来将镜像文件烧到 ...
- 发布自己第一个npm 组件包(基于Vue的文字跑马灯组件)
一.前言 总结下最近工作上在移动端实现的一个跑马灯效果,最终效果如下: 印象中好像HTML标签的'marquee'的直接可以实现这个效果,不过 HTML标准中已经废弃了'marquee'标签 既然HT ...
- [原创]MongoDB综合实例一
CentOS-6.5单机实现mongoDB分片 环境:1)CentOS 6.5系统 2)IP:本机3)MongoDB:MongoDB-linux-x86_64-2.6.1 实现:两个副本集s ...
- WPF 简易的跑马灯效果
最近项目上要用到跑马灯的效果,和网上不太相同的是,网上大部分都是连续的,而我们要求的是不连续的. 也就是是,界面上就展示4项(展示项数可变),如果有7项要展示的话,则不断的在4个空格里左跳,当然,衔接 ...