package com.macower.spring.jdbc; import org.springframework.jdbc.core.namedparam.BeanPropertySqlParameterSource; import org.springframework.jdbc.core.namedparam.MapSqlParameterSource; import org.springframework.jdbc.core.namedparam.NamedParameterJdbcDaoSupport; import org.springframework.jdbc.core.namedparam.SqlParameterSource; /** * 使用命名参数绑定模板类 * @author Macower * */ public class FormJdbcDao2 extends NamedParameterJdbcDaoSupport{ public void addForm(final Form form){ final String sql = "insert into tb_user(userName) values(:userName)"; //BeanPropertySqlParameterSource该类实现了一个JavaBean的对象,封装成一个参数源, //以便通过JavaBean属性名和SQL语句中的命名参数匹配方式绑定参数 SqlParameterSource sps = new BeanPropertySqlParameterSource(form); getNamedParameterJdbcTemplate().update(sql, sps); } public void addForm1(final Form form){ final String sql = "insert into tb_user(userName) values(:userName)"; //MapSqlParameterSource该类内部通过一个Map存储参数,可以通过addValue(String paramName,Object value)或者 //addValues(Map values)添加参数。如果表记录没有对应的领域对象,用户可以直接通过使用MapSqlParameterSource的方式进行参数绑定。 MapSqlParameterSource sps = new MapSqlParameterSource().addValue("userName", form.getUserName()); getNamedParameterJdbcTemplate().update(sql, sps); } } package com.macower.spring.jdbc; import java.sql.ResultSet; import java.sql.SQLException; import java.util.ArrayList; import java.util.List; import org.springframework.jdbc.core.simple.ParameterizedRowMapper; import org.springframework.jdbc.core.simple.SimpleJdbcDaoSupport; /** * 使用命名参数绑定模板类 * * @author Macower * */ public class FormJdbcDao3 extends SimpleJdbcDaoSupport { public List<Form> getForms(final int userIdStart, final int userIdEnd) { List<Form> forms = new ArrayList<Form>(); final String sql = "select * from tb_user where userId between ? and ? "; return getSimpleJdbcTemplate().query(sql, new ParameterizedRowMapper<Form>() { @Override public Form mapRow(ResultSet rs, int index) throws SQLException { Form form = new Form(); form.setUserId(rs.getInt(1)); form.setUserName(rs.getString(2)); return form; } }, userIdStart, userIdEnd); } }