日期:2014-05-16 浏览次数:20553 次
下面的代码是实现了根据对象的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等类别都是基于这种方式的实现。