S2SH整合修改

 

S2SH修改整合修改操作

 

其实我并不认为这就是级联修改,它只涉及到一个表的改动并未涉及到其他的表,我认为级联操作是涉及到多个表的操作。在这里我勉强地称之为级联修改。

Domain中的方法:
public class Orders implements java.io.Serializable {
	/**
	 * @author DXL_xiaoli
	 */
	private static final long serialVersionUID = 1L;
	//递增序列
	private Integer id;
	//支付方式
	private Payments payments;
	//员工
	private Employees employees;
	//客户
	private Customers customers;
	//订单编号
	private String number;
	//订单日期
	private Date rdate;
	//订单金额
	private Double sum;
	//送货方式
	private String sendmode;
	//订单状态
	private String status;
	
//生成set(),get(),public Orders(),public Orders(….)方法
}

 

 

当我们点击修改时将其所对应的实体的 id 传到 action 中并通过配置文件找到其所对应的 update() 方法。由于 Orders 表与客户表 Customers 、员工表 Employees 、支付方式表 Payments 都有所关联,在修改定单表需要将这三个有关联表中的字段查询出来,所以定义了查询这三个表的方法 -----emplist(),customerslist(),payModelist()

public class OrdersAction extends ActionSupport {

	/**
	 * @author DXL_xiaoli
	 */
	private static final long serialVersionUID = 1L;
	private OrdersServiceImpl ordersServiceImpl;
	private Orders entity;
	private List<Orders> entities;
	private Pagination pagination;
	private List<Employees> emplist;
	private List<Payments> payModelist;
	private List<Customers> customerslist;
//构造器注入
	public void setOrdersServiceImpl(OrdersServiceImpl ordersServiceImpl) {
		this.ordersServiceImpl = ordersServiceImpl;
	}
	
	public String findById() {
		entity = ordersServiceImpl.findById(entity.getId());
		return "findById";
	}

	@SuppressWarnings("unchecked")
	public String update() {
		emplist = ordersServiceImpl.emplist();
		customerslist = ordersServiceImpl.customerslist();
		payModelist = ordersServiceImpl.payModelist();

		entity = ordersServiceImpl.findById(entity.getId());
		return "update";
	}

	public String updateOk() {
     	ordersServiceImpl.update(entity);		
		return "updateOk";
	}
}

 
在服务层仍执行update()方法
public class OrdersServiceImpl implements OrdersService{
	private OrdersDaoImpl ordersDaoImpl;
	

	public void setOrdersDaoImpl(OrdersDaoImpl ordersDaoImpl) {
		this.ordersDaoImpl = ordersDaoImpl;
	}

	public Orders findById(Integer id) {
		
		return ordersDaoImpl.findById(id);
	}

	public void update(Orders entity) {
		ordersDaoImpl.update(entity);
	}
	public List customerslist() {
		
		return ordersDaoImpl.customerslist();
	}

	public List emplist() {
		
		return ordersDaoImpl.emplist();
	}

	public List payModelist() {
		
		return ordersDaoImpl.payModelist();
	}

}

 

 

在最底层我们将实现其修改。根据页面传来的 id 将客户表、员工表、支付方式表中的对象获取到,然后将其对象 setOrders 对象中,最后在执行 Orders 表中的 update 方法。

public class OrdersDaoImpl extends HibernateDaoSupport implements OrdersDao {
	public Orders findById(Integer id) {
		return (Orders) this.getHibernateTemplate().get(Orders.class, id);
	}
	public void update(Orders entity) {

		Customers customers = (Customers) this.getHibernateTemplate().get(
				Customers.class, entity.getCustomers().getId());

		Employees employees = (Employees) this.getHibernateTemplate().get(
				Employees.class, entity.getEmployees().getId());

		Payments payments = (Payments) this.getHibernateTemplate().get(
				Payments.class, entity.getPayments().getId());

		entity.setCustomers(customers);
		entity.setEmployees(employees);
		entity.setPayments(payments);

		this.getHibernateTemplate().update(entity);

	}

	public List customerslist() {

		return this.getHibernateTemplate().find(" from Customers");
	}

	public List emplist() {

		return this.getHibernateTemplate().find(" from Employees");
	}

	public List payModelist() {

		return this.getHibernateTemplate().find(" from Payments");
	}

}

 

 

以上是整个修改的全过程 ( 添加操作与修改操作类似,在此不做详解 ) ,若有写的不清楚的地方请留言 ……..

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值