日期:2014-05-16  浏览次数:20553 次

调用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" 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等类别都是基于这种方式的实现。