SimpleJbdcTemplate类

来源:互联网 发布:招聘网络技术员图片 编辑:程序博客网 时间:2024/06/03 06:08

7.2.5  SimpleJdbcTemplate

      

7.2.5 SimpleJdbcTemplate

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

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

首先让我们看个例子吧:

//定义UserModel的RowMapperpackage cn.javass.spring.chapter7;import java.sql.ResultSet;import java.sql.SQLException;import org.springframework.jdbc.core.RowMapper;public class UserRowMapper implements RowMapper<UserModel> {    @Override    public UserModel mapRow(ResultSet rs, int rowNum) throws SQLException {        UserModel model = new UserModel();        model.setId(rs.getInt("id"));        model.setMyName(rs.getString("name"));        return model;    }}

@Testpublic void testSimpleJdbcTemplate() {    //还支持DataSource和NamedParameterJdbcTemplate作为构造器参数    SimpleJdbcTemplate simpleJdbcTemplate = new SimpleJdbcTemplate(jdbcTemplate);    String insertSql = "insert into test(id, name) values(?, ?)";    simpleJdbcTemplate.update(insertSql, 10, "name5");    String selectSql = "select * from test where id=? and name=?";    List<Map<String, Object>> result = simpleJdbcTemplate.queryForList(selectSql, 10, "name5");    Assert.assertEquals(1, result.size());        RowMapper<UserModel> mapper = new UserRowMapper();          List<UserModel> result2 = simpleJdbcTemplate.query(selectSql, mapper, 10, "name5");    Assert.assertEquals(1, result2.size());   }

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中使用,在此就不介绍了。


0 0
原创粉丝点击