【JdbcTemplete】JdbcTemplete代码详解--模板方法详解
2016-06-16 18:18
459 查看
JdbcTemplete类层次结构
JdbcAccessor:对DataSource数据源进行管理和配置;
JdbcOperations:定义了通过JDBC操作数据库的基本操作方法;
JdbcTemplate:提供了实现JdbcOperations接口方法的细节;
JdbcTemplate中模板方法设计模式的使用
模板方法设计模式:模板方法中定义算法的基本骨架,由子类在实现其中的一些细节。在jdbc访问数据库时,需要创建和维护、销毁Connection、Statement,以及处理SqlException等,如下所示:从上面可以看出,所有的数据库操作,都有一个固定的套路,为了避免重复代码,JdbcTemplate使用模板方法设计模式,将数据库访问中涉及到的不变部分放在JdbcTemplate中,而将变化的部分(比如sql语句)放到Callback中;JdbcTemplate中的execute()就是模板方法:
从上面的代码中,可以看到,创建Connection和Statement,以及处理exception、释放资源等,都是固定的,具体的sql都是变化的部分,都放在Callback中。下面以query为例进行介绍:
下面在看一个update的例子:
JdbcTemplate中的Callback
主要有3个:Statement;
CallableStatement;
PreparedStatement;
每种Statement都有自己对应的execute()方法,都是模板方法,且实现细节基本相同;
每种execute()方法中的Callback函数,分别对应上面3种;
JdbcTemplate的query()
JdbcTemplate中的query方法,使用的基本都是preparedStatement
JdbcTemplate方法概览
查询方法主要分为如下几大类:query()queryForList()
queryForMap()
queryForMap()
queryForRowSet()
而上面的每一种,基本又可以分为3类,分别为:ResultSetExtractor<T> :
RowCallbackHandler
RowMapper<T>
具体区别可参见:http://www.cnblogs.com/ssslinppp/p/4954099.html
来自为知笔记(Wiz)
相关文章推荐
- 分类算法 之 逻辑回归--理论+案例+代码
- Ehcache 整合Spring 使用页面、对象缓存
- 问题咨询
- 用Python+Django在Eclipse环境下开发web网站【转】
- 算法导论第十五章-动态规划-Cpp代码实现
- 最大K个数问题的Python版解法总结
- Spring的IOC原理(转载)
- asp.net EntityFramework 执行sql top n 错误
- Qt 常用类 (9)—— QWidget
- Java中垃圾回收(gc)问题
- org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'xxxx'
- HiveServer2用户名密码验证
- C# 生成随机索引列表
- 常用排序算法----Java实现
- SSM框架——详细整合教程(Spring+SpringMVC+MyBatis)
- Qt 常用类 (8)—— QIcon
- DepthBinaryTree leetcode java python
- 初心大陆-----python宝典 第二章
- Hive java编程提交查询语句和配置
- Mac-PHPStorm_下载php7(php5)问题