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

本文介绍了如何在Spring框架中利用SimpleJdbcTemplate和泛型技术,有效简化JDBC代码,提高开发效率。通过getNamedParameterJdbcOperations方法获取NamedParameterJdbcOperations实例,以实现更便捷的数据库操作。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

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;
	}
}


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值