Spring 2.0的NamedParapeterJdbcTemplate

在spring 2.0中新增了 NamedParapeterJdbcTemplate类,这样就可以在编写JDBC的SQL时候,不使用?占位符了,而使用实际的命名参数来保留SQL中变动的数据部分,比如,原本打算写这样的SQL:

String sql="select * from user where id=?"

现在可以使用这样的方式

String sql="select * from user where id=:userid"
SqlParameterSrouce nameParameters=new MapSqlParapeterSource("userid",id);
NamedParapeterJdbcTemplate jdbcTemplate=new NamedParapeterJdbcTemplate(dataSource);
jdbcTemplate.queryForList(sql,nameParameters);

也可以使用map指定多个参数

String sql="insert into user (name,age) values (:userName,:userAge)";
Map nameParameters=new HashMap();
nameParameters.put("userName",userName);
nameParameters.put("userAge",userAge);
NamedParapeterJdbcTemplate jdbcTemplate=new NamedParapeterJdbcTemplate(dataSource);
jdbcTemplate.update(sql,nameParameters);

也可以将一个POJO对象作为参数依据

String sql="insert into user (name,age) values(:name,:age);
User user=new User("haha",11);
SqlParameterSrouce nameParameters=new BeanPropertySqlParameterSource(user);
NamedParapeterJdbcTemplate jdbcTemplate=new NamedParapeterJdbcTemplate(dataSource);
jdbcTemplate.update(sql,nameParameters);

你可能感兴趣的:(spring,sql,String,user,HashMap,insert)