DBUtils原理分析

1.简化了增删改的代码

原始方法:

1.获取连接池 2.获取连接 3.创建SQL模板 4.创建预处理对象 5.通过预处理对象设置模板中每一个参数 6.调用预处理对象executeUpdate()更新结果 7.关闭预处理对象 8.关闭连接

通过分析可以发现:

1.增删改数据库都是用以上方法完成,

2.原始方法要创建每一种操作的方法,

3.变化的只有 SQL模板和设置的参数,

那么我们就可以创建一个工具类,去除掉重复的操作

工具类的实现:

首先需要用户传一个连接池进来,使用构造的方法获取

将连接池定义个成员共其他方法使用

然后定义一个增删改的方法,

参数为 1.SQL模板 2.参数数组(为可变参数并且为Objcet类型方便传入任何类型)

可以返回一个执行成功后的执行条数

将重复的操作放到此方法中,

通过连接池成员获取连接

使用 传入的 SQL模板 创建预处理对象

然后循环可变参数数组

用预处理对象的setObjcet()方法循环设置每一个参数.

调用预处理对象executeUpdate()更新结果.关闭预处理对象,关闭连接

此方法设置好后,就可以使用一个方法实现 增删改,且简化了很多操作.

2.简化了查询的代码

因为查询与增删改略有不同,需要用到ResultSet结果集 来对数据进行读取存储,所以需要单独建立一个方法实现

原始方法:

1.获取连接池 2.获取连接 3.创建SQL模板 4.创建预处理对象 5.通过预处理对象设置模板中每一个参数 6.调用预处理对象executeQuery()方法得到ResultSet结果集 7.再将ResultSet将结果转换成对象返回 8.关闭ResultSet9.关闭预处理对象 10.关闭连接

通过分析可以发现:

1.变化有 SQL模板设置的参数和 ResultSet的转换,

1.在工具类中定义一个泛型接口类 用来实现ResultSet结果集的转换

接口中定义一个方法 参数为 ResultSet 类型,返回一个对象任意泛型对象

2.实现一个泛型的查询方法,参数为(1.SQL模板 2.接口类 3.参数数组(为可变参数并且为Objcet类型方便传入任何类型)


   Reprint policy


《DBUtils原理分析》 by 黄小华 is licensed under a Creative Commons Attribution 4.0 International License
 Previous
java之反射机制 java之反射机制
对象是表达或封装一些数据,一个类被加载后,JVM会创建一个对应该类的class对象类的整个结构信息会放到对应的class对象中,这个class对象就像一面镜子一样,通过这面镜子我可以看到对应类的全部信息
2019-08-31 黄小华
Next 
Hello World Hello World
Welcome to Hexo! This is your very first post. Check documentation for more info. If you get any problems when using Hex
2019-08-29 黄小华
  TOC