介绍 NamedParameterJDBCTemplate 、SimpleJDBCTemplate
前者提供命名参数绑定的功能,后者封装了JDBCTemplate、将常用的API开放出来。
NamedParameterJDBCTemplate
为什么会有NamedParameterJDBCTemplate?
答:因为以前用?占位符声明参数,并用索引号绑定参数。但这种编程模式是弱稳定的,因为如果新增一个占位符?时,可能原来的参数要调整索引号。
例:
-- Forum.java
包含属性
private int forumId;
private String forumName;
private String forumDesc;
-- ForumDao.java里有
@Autowired
private NamedParameterJdbcTemplate namedParameterJdbcTemplate;
//使用NamedParameterJDBCTemplate添加数据
public void addForumByNamedParams(final Forum forum) {
final String sql = "INSERT INTO t_forum(forum_name, forum_desc) VALUES(:forumName,:forumDesc)";
SqlParameterSource sps = new BeanPropertySqlParameterSource(forum);
namedParameterJdbcTemplate.update(sql, sps);
}
-- 配置文件里
<bean id="namedParamJdbcTemplate" class="org.springframework.jdbc.core.namedparam.NamedParameterJdbcTemplate">
<constructor-arg ref="dataSource"/>
</bean>