调用JdbcTemplate实现修改更新
下面的代码是实现了根据对象的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" 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等类别都是基于这种方式的实现。