下面的代码是实现了根据对象的id来更新改对象的信息。
1、在serviceImpl.java中写如下代码实现
public class ConGoodsServiceImpl extends HibernateServiceSupport implements ConGoodsService{
private JdbcTemplate jdbcTemplate;
public JdbcTemplate getJdbcTemplate() {
return jdbcTemplate;
}
public void setJdbcTemplate(JdbcTemplate jdbcTemplate) {
this.jdbcTemplate = jdbcTemplate;
}
public void updateOutput(ConGoods conGoods) throws Exception{
jdbcTemplate.update("UPDATE ast_consumables_goods SET inid = ? , outid = ? , goodsname = ? , unit = ? , goodsstyle = ? , goodsnumber = ? , unitprice = ? , amount = ? , productdate = ? , brand = ? WHERE id = ?", new Object[] {conGoods.getInid(),conGoods.getOutid(),conGoods.getGoodsname(),conGoods.getUnit(),conGoods.getGoodsstyle(),conGoods.getGoodsnumber(),conGoods.getUnitprice(),conGoods.getAmount(),conGoods.getProductdate(),conGoods.getBrand(),conGoods.getId()});
}
//其实jdbcTemplate.update(中是一条SQL语句)。在w3cschool中可以看到sql的基本操作
}
2、在applicationContext.xml中添加如下配置
<bean id="conGoodsTarget" class="com.kingee.ast.consumables.service.impl.ConGoodsServiceImpl">
<property name="hibernateTemplate" ref="astHibernateTemplate"></property>
//引入jdbctemplate
<property name="jdbcTemplate" ref="astJdbcTemplate"></property>
</bean>
<bean id="conGoodsService" parent="conGoodsTarget" ></bean>
3、在后台中调用updateOutput()就可以实现
ConGoods conGoods = new ConGoods();
conGoods.setOutid(uuid);
conGoods.setInid(jo.getString("inid"));
conGoods.setId(jo.getString("id"));
conGoods.setGoodsname(jo.getString("goodsname"));
conGoods.setUnit(jo.getString("unit"));
conGoods.setGoodsstyle(jo.getString("goodsstyle"));
conGoods.setGoodsnumber(jo.getString("goodsnumber"));
conGoodsService.updateOutput(conGoods);
JdbcTemplate将我们使用的JDBC的流程封装起来,包括了异常的捕捉、SQL的执行、查询结果的转换等等。spring大量使用Template Method模式来封装固定流程的动作,XXXTemplate等类别都是基于这种方式的实现。