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类型方便传入任何类型)