Spring SimpleJdbcTemplate教程

       SimpleJdbcTemplate类也是基于JdbcTemplate类,但利用Java5+的可变参数列表和自动装箱和拆箱从而获取更简洁的代码。

SimpleJdbcTemplate主要提供两类方法:query及queryForXXX方法、update及batchUpdate方法。

首先让我们看个例子吧:

 

java代码:
Java代码    收藏代码
  1. //定义UserModel的RowMapper  
  2. package cn.javass.spring.chapter7;  
  3. import java.sql.ResultSet;  
  4. import java.sql.SQLException;  
  5. import org.springframework.jdbc.core.RowMapper;  
  6. public class UserRowMapper implements RowMapper<UserModel> {  
  7.     @Override  
  8.     public UserModel mapRow(ResultSet rs, int rowNum) throws SQLException {  
  9.         UserModel model = new UserModel();  
  10.         model.setId(rs.getInt("id"));  
  11.         model.setMyName(rs.getString("name"));  
  12.         return model;  
  13.     }  
  14. }  

 

 

java代码:
Java代码    收藏代码
  1. @Test  
  2. public void testSimpleJdbcTemplate() {  
  3.     //还支持DataSource和NamedParameterJdbcTemplate作为构造器参数  
  4.     SimpleJdbcTemplate simpleJdbcTemplate = new SimpleJdbcTemplate(jdbcTemplate);  
  5.     String insertSql = "insert into test(id, name) values(?, ?)";  
  6.     simpleJdbcTemplate.update(insertSql, 10"name5");  
  7.     String selectSql = "select * from test where id=? and name=?";  
  8.     List<Map<String, Object>> result = simpleJdbcTemplate.queryForList(selectSql, 10"name5");  
  9.     Assert.assertEquals(1, result.size());      
  10.     RowMapper<UserModel> mapper = new UserRowMapper();        
  11.     List<UserModel> result2 = simpleJdbcTemplate.query(selectSql, mapper, 10"name5");  
  12.     Assert.assertEquals(1, result2.size());     
  13. }  

 

1)SimpleJdbcTemplate初始化:可以使用DataSource、JdbcTemplate或NamedParameterJdbcTemplate对象作为构造器参数初始化;

2)update(insertSql, 10, "name5"):采用Java5+可变参数列表从而代替new Object[]{10, "name5"}方式;

3)query(selectSql, mapper, 10, "name5"):使用Java5+可变参数列表及RowMapper回调并利用泛型特性来指定返回值类型(List<UserModel>)。

 

SimpleJdbcTemplate类还支持命名参数特性,如queryForList(String sql, SqlParameterSource args)和queryForList(String sql, Map<String, ?> args) ,类似于NamedParameterJdbcTemplate中使用,在此就不介绍了。

 

注:SimpleJdbcTemplate还提供类似于ParameterizedRowMapper 用于泛型特性的支持,ParameterizedRowMapper是RowMapper的子类,但从Spring 3.0由于允许环境需要Java5+,因此不再需要ParameterizedRowMapper ,而可以直接使用RowMapper;

query(String sql, ParameterizedRowMapper<T> rm, SqlParameterSource args)

query(String sql, RowMapper<T> rm, Object... args) //直接使用该语句

 

SimpleJdbcTemplate还提供如下方法用于获取JdbcTemplate和NamedParameterJdbcTemplate:

1)获取JdbcTemplate对象方法:JdbcOperations是JdbcTemplate的接口

JdbcOperations getJdbcOperations()

2)获取NamedParameterJdbcTemplate对象方法:NamedParameterJdbcOperations是NamedParameterJdbcTemplate的接口

NamedParameterJdbcOperations getNamedParameterJdbcOperations()

 

 

更多关系Spring的信息

 Spring 论坛  http://www.itchm.com/forum-59-1.html

<script type="text/javascript"> </script><script type="text/javascript" src="http://pagead2.googlesyndication.com/pagead/show_ads.js"></script>
  • 3
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值