Spring的JdbcTemplate、NamedParameterJdbcTemplate、SimpleJdbcTemplate

一、JdbcTemplate

查询带有参数,和行映射方法:

public Object queryForObject(String sql, Object[] args, RowMapper rowMapper),使用自定义的UserRowMapper完成映射。
一个RowMapper的常用实现BeanPropertyRowMapper,该实现可将结果集转换成一个Java Bean(字段名与Java Bean属性名不符合规范,可用别名处理)。
public List query(String sql, Object[] args, RowMapper rowMapper)返回多个结果。
public int queryForInt(String sql)(如:select count(*) from user),其他结果比如String可用queryForObject方法向下转型。
public Map queryForMap(String sql, Object[] args)返回若类型的Map(key:字段名或别名,value:列值)。
public List queryForList(String sql, Object[] args)返回多Map。
更新public int update(String sql, Object[] args)。
插入数据并获得结果:
public Object execute(ConnectionCallback action)
其他方法简介

public class JdbcTemplateTest {
// JdbcTemplate是线程安全的
static JdbcTemplate jdbc = new JdbcTemplate(JdbcUtils.getDataSource());
public static void main(String[] args) {
User user = findUser(“zhangsan”);
// System.out.println(“user:” + user);
// System.out.println(“users:” + findUsers(3));
// System.out.println(“user count:” + getUserCount());
// System.out.println(“user name:” + getUserName(1));
System.out.println(“data:” + getData(1));
}
static int addUser(final User user) {
jdbc.execute(new ConnectionCallback() {
public Object doInConnection(Connection con) throws SQLException,
DataAccessException {
String sql = “insert into user(name,birthday, money) values (?,?,?) “;
PreparedStatement ps = con.prepareStatement(sql,
Statement.RETURN_GENERATED_KEYS);
ps.setString(1, user.getName());
ps.setDate(2, new java.sql.Date(user.getBirthday().getTime()));
ps.setFloat(3, user.getMoney());
ps.executeUpdate();
ResultSet rs = ps.getGeneratedKeys();
if (rs.next())
user.setId(rs.getInt(1));
return null;
}
});
return 0;
}
static Map getData(int id) {
String sql = “select id as userId, name, money, birthday from user where id=”
+ id;
return jdbc.queryForMap(sql);
}
static String getUserName(int id) {
String sql = “select name from user where id=” + id;
Object name = jdbc.queryForObject(sql, String.class);
return (String) name;
}
static int getUserCount() {
String sql = “select count(*) from user”;
return jdbc.queryForInt(sql);
}
static List findUsers(int id) {
String sql = “select id, name, money, birthday from user where id

你可能感兴趣的:(Spring)