我的学习之路_第二十一章_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实现类不同,返回的结果集也不同,使用泛型,传入什么结果集,就返回对应的类型

时间: 2024-08-26 05:47:35

我的学习之路_第二十一章_JDBC连接池的相关文章

我的学习之路_第二十三章_HTML

Html : 超级文本语言 ( Hyper text Markup Language ) HTML 文件扩展名是 * .html HTML 结构都是有标签组成 通常情况下标签有开始标签和结束标签组成 例如 : <a> </a> 围堵标记 如果没有结束标签,不能写文本 例如<img/> 空标记 标签中可以有属性 属性的书写格式: 属性名= "属性值"; 文字类标签: <hn> </hn> n是一个可变参数 n的取值范围1-6 ,

我的学习之路_第二十七章_jQuery

jQueryjs类库 把常用对象或者方法封装起来,让我们写代码效率更高 1.jQuery 2.extjs [jQuery入门] jQuery的引入: 通过script标签的src属性引入 入门: 获取jQuery对象 $(选择器) == jQuery(选择器) 获取值 jQuery.val(); jQuery对象和Dom对象的转换 Dom对象转jQuery对象 : var jQuery对象 = $(dom对象); jQuery对象换Dom对象 : 方式一: var Dom = jQuery对象[

我的学习之路_第十一章_字符流

[字符流] IO流的分类 ★字节流 操作的文件不是文本文件 字节输入流: InputStream 抽象类 FileInputStream操作文件的字节输入流 字节输出流: OutputStream 抽象类 FileOutputStream操作文件的字节输出流 ★字符流 操作的文件是文本文件 字符输入流: Reader 抽象类 FileReader 用来操作文件的字符输入流 字符数出流: Writer 抽象类 FileWriter 用来操作文件的字符输出流 [转换流] ▲OutputStreamW

我的学习之路_第二十二章_事务

JDBC事务 [事务] 作用: 保证多条SQL语句,要么都执行成功,要么都执行失败. mysql数据库,执行SQL语句,自动开启事务,提交事务,回滚事务,把数据永久保存 oracle数据库,执行SQL语句,手动开始会务,提交事务,回滚事务,把数据永久保存. Connection接口中和事务有关的方法: 无返回值 setAutoCommit(boolean autoCommit) 将此连接的自动提交模式设置为给定状态. 参数:autoCommit : true表示自动提交模式, false表示禁用

我的学习之路_第二十九章_bootstrap

bootstrap 内置了html,css,js插件为一体的前端框架 响应式布局: 设计一套页面就可以使用于很多现实设备 bootstrap: 1.入门(响应式布局的容器) 1.先进入jQuery的js2.再引入bootstrap的js3.引入bootstrap的css文件4.设置视口(支持移动设备优先) <meta name="viewport" content="width=device-width,initial-scale=1"> 5.页面创建一

我的学习之路_第二十八章_JQuery 和validator插件

jQuery 利用jQuery进行遍历 js原生: for(var i=0;i>?;i++){ } jQuery: 方式一: 想要遍历的jQuery对象.each(function(index,dom){ }); 方式二: $.each(想要遍历的jQuery对象,function(index,dom){ }); 操作元素的值或者标签体 xxx():获取操作 xxx("值"):设置 获取或设置值: val(); 获取或设置标签体: html() 获取或设置标签体: text()

我的学习之路_第二章_接口/多态

接口 (1)当抽象类中的方法都是抽象的时候,java就提供了一种新的表现形式:接口.接口是功能的集合 接口不能创建对象 (2)格式: 父接口: public interface Inter { } 子类: public class InterImpl implements Inter { } (3)接口的特点: A:不需要被abstract修饰. B:类实现接口,可以单实现,还可以多实现. C:接口可以继承接口,可以单继承,也可以多继承. D:接口与父类的功能可以重复,均代表要具备某种功能. (

我的学习之路_第二十六章_javaScript(2)

Javascript [DOM操作] 获取元素 var obj = document.getElementById("id值"); 获取值 obj.value; 设置值 obj.value=值; 获取标签体内容 obj.innerHtml; 设置标签体内容 obj.innerHtml=值; 使用正则表达式校验数据 1.编写正则表达式 1.用户名的正则 : /^[a-z0-9_-]{3,16}$/ 2.密码:/^[a-z0-9_-]{6,18}$/ 3.电子邮箱:/^([a-z0-9_\

我的学习之路_第五章_Data,正则

Date 类 (时间类) 所属包:java.util.Date 构造方法: public Date() 返回的是当前时间 也就是1970-1-1到电脑目前的时间值,用毫秒来表示 public Date(long 毫秒值) 返回指定毫秒值的时间 方法: 返回值 long getTime() 返回当前时间的毫秒值 没有返回值 setTime(long 毫秒值) 设置当前时间的毫秒值 java中的时间原点为:1970-1-1 00:00:00毫秒值的换算: 1秒=1000毫秒 DateFormat (