jdbcTemplate

以前一直用hibernateTemplate的,今天看了看spring的jdbcTemplate。
jdbcTemplate就是一个封装了jdbc的模板,直接使用JdbcTemplate很简单,它只依赖于数据源。它的配置就不多说了,文档写的很详细,主要讲讲它的一些常用的方法。
查询数据:RowCallbackHandler
public void query(String sql, RowCallbackHandler rch)
public void query(String sql,Object[] args,RowCallbackHandler rch)
下面是实现
public List<Advertisement> getAllByContractId(int id)
throws DataAccessException {
String sql = "select * from advertisement where contractid=" + id + " Order by id";
List<Advertisement> list = new ArrayList<Advertisement>();
getJdbcTemplate().query(sql, new AdvertisementRowCallbackHandler(list));
return list;
}

public class AdvertisementRowCallbackHandler implements RowCallbackHandler{

private List<Advertisement> setList=null;

public AdvertisementRowCallbackHandler(List<Advertisement> setList){
this.setList = setList;
}

public void processRow(ResultSet rs) throws SQLException{
Advertisement model=new Advertisement();
model.setId(rs.getInt("ID"));
model.setContractid(rs.getInt("CONTRACTID"));
model.setName(rs.getString("NAME"));
model.setIntervalType(rs.getString("INTERVAL_TYPE"));
model.setPlayUnit(rs.getString("PLAY_UNIT"));
model.setUnDecideLen(rs.getInt("UN_DECIDE_LEN"));
model.setAgentCompanyName(rs.getString("AGENT_ADCOMPANY_NAME"));
model.setNodeGroupNum(rs.getInt("NODEGROUP_NUM"));
model.setReleaseDays(rs.getInt("RELEASE_DAYS"));
setList.add(model);
}
}

查询数据:RowMapper
RowMapper的好处是,自动封装了List,并自动返回,无需自己添加List和把元素添加到List中。
RowMapper可以将数据中的每一行封装成用户定义的类,在数据库查询中,如果返回的类型是用户自定义的类型则需要包装,如果是Java自定义的类型,如:String则不需要
public List<Actor> findAllActors() {
return this.jdbcTemplate.query( "select first_name, last_name from t_actor", new ActorMapper());
}

private static final class ActorMapper implements RowMapper<Actor> {
public Actor mapRow(ResultSet rs, int rowNum) throws SQLException {
Actor actor = new Actor();
actor.setFirstName(rs.getString("first_name"));
actor.setLastName(rs.getString("last_name"));
return actor;
}
}

update:
public int update(String sql,Object[] args)
public int update(String sql,Object[] args,int[] argTypes)
public int update(String sql,PreparedStatementSetter pss)
主要讲讲第3个方法
String sql = "insert into t_forum(forum_name,forum_desc) values(?,?)";
getJdbcTemplate().update(sql, new PreparedStatementSetter(){
public void setValues(PreparedStatement ps) throws SQLException{
ps.setString(1, forum.getForumName());
ps.setString(2, forum.getForumDesc());
}
});
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值