在xml中配置jdbcTemplate:
<context:component-scan base-package="com.springzoo"/>
<context:property-placeholder location="classpath:jdbc.properties" />
<bean id="dataSource" class="org.apache.commons.dbcp.BasicDataSource"
destroy-method="close"
p:driverClassName="${jdbc.driverClassName}"
p:url="${jdbc.url}"
p:username="${jdbc.username}"
p:password="${jdbc.password}" />
<bean id="jdbcTemplate"
class="org.springframework.jdbc.core.JdbcTemplate"
p:dataSource-ref="dataSource"/>
下面是DAO的示例:
@Repository
public class ForumDao {
@Autowired
private JdbcTemplate jdbcTemplate;
@Autowired
private NamedParameterJdbcTemplate namedParameterJdbcTemplate;
public void initDb() {
String sql = "create table t_user(user_id int primary key,user_name varchar(60))";
jdbcTemplate.execute(sql);
}
/**
* 更新一条数据
*
* @param forum
*/
public void addForum(final Forum forum) {
final String sql = "INSERT INTO t_forum(forum_name,forum_desc) VALUES(?,?)";
Object[] params = new Object[] { forum.getForumName(),
forum.getForumDesc() };
// 方式1
// jdbcTemplate.update(sql, params);
// 方式2
// jdbcTemplate.update(sql, params,new
// int[]{Types.VARCHAR,Types.VARCHAR});
// 方式3
/*
* jdbcTemplate.update(sql, new PreparedStatementSetter() { public void
* setValues(PreparedStatement ps) throws SQLException { ps.setString(1,
* forum.getForumName()); ps.setString(2, forum.getForumDesc()); } });
*/
// 方式4
KeyHolder keyHolder = new GeneratedKeyHolder();
jdbcTemplate.update(new PreparedStatementCreator() {
public PreparedStatement createPreparedStatement(Connection conn)
throws SQLException {
PreparedStatement ps = conn.prepareStatement(sql);
ps.setString(1, forum.getForumName());
ps.setString(2, forum.getForumDesc());
return ps;
}
}, keyHolder);
forum.setForumId(keyHolder.getKey().intValue());
}
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);
namedParameterJd