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

JDBC之使用SimpleJdbcTemplate和泛型技术简化代码

2017-07-30 19:05 393 查看
Spring的SimpleJdbcTemplate:

①SimpleJdbcTemplate内部包含了一个NamedParameterJdbcTemplate;所以NamedParameterJdbcTemplate能做的事情SimpleJdbcTemplate都能干,SimpleJdbcTemplate相对于NamedParameterJdbcTemplate主要增加了JDK5.0的泛型和可变长度参数支持。

②public <T> List<T> query(String sql, ParameterizedRowMapper<T> rm, Object... args)

③public <T> T queryForObject(String sql, ParameterizedRowMapper<T> rm, SqlParameterSource args)

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

⑤getJdbcOperations返回的是JdbcOperations(实现JdbcTemplate)
⑥getNamedParameterJdbcOperations返回的是NamedParameterJdbcOperations(实现是NamedParameterJdbcTemplate)

测试类如下:

package cn.itcast.jdbc.spring;

import java.util.List;

import org.junit.Test;
import org.springframework.jdbc.core.simple.ParameterizedBeanPropertyRowMapper;
import org.springframework.jdbc.core.simple.SimpleJdbcTemplate;

import cn.itcast.jdbc.JdbcUtils;
import cn.itcast.jdbc.domain.User;

/**
* 使用Spring中的SimpleJdbcTemplate,
* 这里只做简单的介绍,因为支持泛型,因此
* JDK版本要求在1.5或以上版本
*/
public class SimpleJdbcTemplateCases {

@Test
public void testFind() {
find("lisi");
}

static SimpleJdbcTemplate simple =
new SimpleJdbcTemplate(JdbcUtils.getDataSource());

/**
* 测试查询方法
* @param name
* @return
*/
static List<User> find(String name) {
String sql = "select id, name, money, birthday "
+ "from user where name=? and money > ?";
List<User> list = simple.query(sql,
ParameterizedBeanPropertyRowMapper.newInstance(User.class),
//下面两个参数是可变长参数
name, 100f);
//获取JdbcTemplate中的所有操作
//simple.getJdbcOperations()
//获取NamedParameterJdbcTemplate中的所有操作
//simple.getNamedParameterJdbcOperations()
return list;
}
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息