您的位置:首页 > 编程语言

【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)
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: