<!-- 配置NamedParameterJdbcTemplate,该对象可以使用具名参数,其没有无参数的构造器,所以必须为其构造器指定参数 -->
<bean id="namedParameterJdbcTemplate"
class="org.springframework.jdbc.core.namedparam.NamedParameterJdbcTemplate">
<constructor-arg ref="dataSource"></constructor-arg>
</bean>
/**
* 可以为参数起名字。
* 1、若有多个参数,便于维护,不用再去对应位置,直接对应参数名
*/
//@Test
public void testNamedParameterJdbcTemplate()
{
String sql="insert into employee(id,name,sex,dept_id) values(:npjtid,:npjtname,:npjtsex,:npjtsept_id)";
Map<String,Object> paramMap=new HashMap<>();
paramMap.put("npjtid",10);
paramMap.put("npjtname","李小龙");
paramMap.put("npjtsex","男");
paramMap.put("npjtsept_id",1);
namedParameterJdbcTemplate.update(sql, paramMap);
}
/**
* 使用具名参数时,可以使用update(String sql, SqlParameterSource paramSource) 方法进行更新操作
* 1、SQL语句中的参数名和类的属性一致
* 2、使用SqlParameterSource 的BeanPropertySqlParameterSource 实现类作为参数
*
*/
@Test
public void testNamedParameterJdbcTemplate2()
{
String sql="insert into employee(id,name,sex,dept_id) "
+ "values(:id,:name,:sex,:dept_id)";
Employee employee=new Employee();
employee.setId(11);
employee.setName("叶问");
employee.setSex("男");
employee.setDept_id(2);
SqlParameterSource paramSource=new BeanPropertySqlParameterSource(employee);
namedParameterJdbcTemplate.update(sql, paramSource);
}