template
- JdbcTemplate: 列表传参的模板
- NamedParameterJdbcTemplate: map传参的模板
使用姿势
1.注入bean
JavaConfig
import org.springframework.stereotype.Repository;
@Repository
public class JdbcSpitterRepository implements SpitterRepository {
private JdbcTemplate jdbcTemplate;
@Autowired
public JdbcSpitterRepository(JdbcTemplate jdbcTemplate) {
this.jdbcTemplate = jdbcTemplate;
}
}
xml configuration
<bean id="jdbcTemplate"
class="org.springframework.jdbc.core.JdbcTemplate"
c:_-ref="dataSource" />
2. 数据库操作
public Spitter findOne(long id) {
return jdbcOperations.queryForObject(
SELECT_SPITTER_BY_ID, new SpitterRowMapper(),
id
);
}
private static final class SpitterRowMapper
implements RowMapper<Spitter> {
public Spitter mapRow(ResultSet rs, int rowNum)
throws SQLException {
return new Spitter(
rs.getLong("id"),
rs.getString("username"),
rs.getString("password"),
rs.getString("fullName"),
rs.getString("email"),
rs.getBoolean("updateByEmail"));
} }
public void addSpitter(Spitter spitter) {
jdbcOperations.update(INSERT_SPITTER,
spitter.getUsername(),
spitter.getPassword(),
spitter.getFullName(),
spitter.getEmail(),
spitter.isUpdateByEmail());
}
map 方式
private static final String INSERT_SPITTER =
"insert into Spitter " +
" (username, password, fullname, email, updateByEmail) " +
"values " +
" (:username, :password, :fullname, :email, :updateByEmail)";
public void addSpitter(Spitter spitter) {
Map<String, Object> paramMap = new HashMap<String, Object>();
paramMap.put("username", spitter.getUsername());
paramMap.put("password", spitter.getPassword());
paramMap.put("fullname", spitter.getFullName());
paramMap.put("email", spitter.getEmail());
paramMap.put("updateByEmail", spitter.isUpdateByEmail());
jdbcOperations.update(INSERT_SPITTER, paramMap);
}
网友评论