首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 开发语言 > 编程 >

B2C电子商务网站:3大框架整合开发的级联删除

2012-10-28 
B2C电子商务网站:三大框架整合开发的级联删除B2C电子商务网站:三大框架整合开发的级联删除?????? 最近在做

B2C电子商务网站:三大框架整合开发的级联删除

B2C电子商务网站:三大框架整合开发的级联删除

?????? 最近在做B2C电子商务网站,所以一直很忙,都没有什么时间写我的技术ITEYE博客,今天已经把进度提上去了,后台做的差不多了。今天我想给大家分享我的项目中的级联删除的操作。
?????? 比如:对于商品表,当删除某个商品订单的时候,应该删除该订单下所有的订单详情。
?????? 最后运行的结果是:当你点击订单的删除时,它会把所有的订单明细全部删除。这样就达到了级联删除的操作。
?????? 以下是详细代码,大家可以参考。

?

cn.z_xiaofei168.domain包

package cn.z_xiaofei168.domain;import java.util.Date;import java.util.HashSet;import java.util.Set;public class Orders implements java.io.Serializable {/** * @author z_xiaofei168 */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;private Set<Orderdetails> orderdetailses = new HashSet<Orderdetails>(0);//以下省略所有的set和get方法}

?

?
?? Orders.hbm.xml

?

?

<?xml version="1.0" encoding="utf-8"?><!DOCTYPE hibernate-mapping PUBLIC "-//Hibernate/Hibernate Mapping DTD 3.0//EN"                                   "http://hibernate.sourceforge.net/hibernate-mapping-3.0.dtd"><hibernate-mapping default-lazy="false"package="cn.z_xiaofei168.domain"><class name="Orders" table="orders"><id name="id" type="java.lang.Integer"><column name="id" /><generator /></id><many-to-one fetch="select" lazy="false"name="payments"><column name="payment_id" not-null="true" /></many-to-one><many-to-one fetch="select" lazy="false"name="employees"><column name="employees_id" not-null="true" /></many-to-one><many-to-one fetch="select" lazy="false"name="customers"><column name="customers_id" not-null="true" /></many-to-one><property generated="never" lazy="false" name="number"type="java.lang.String"><column length="20" name="number" not-null="true" /></property><property generated="never" lazy="false" name="rdate" type="date"><column length="19" name="rdate" not-null="true" /></property><property generated="never" lazy="false" name="sum"type="java.lang.Double"><column name="sum" not-null="true" precision="22" scale="0" /></property><property generated="never" lazy="false" name="sendmode"type="java.lang.String"><column length="50" name="sendmode" not-null="true" /></property><property generated="never" lazy="false" name="status"type="java.lang.String"><column length="10" name="status" not-null="true" /></property><set inverse="true" lazy="false" name="orderdetailses" sort="unsorted"><key><column name="orders_id" not-null="true" /></key><one-to-many /></set></class></hibernate-mapping>

?

? cn.z_xiaofei168.action包

?

package cn.z_xiaofei168.action;import java.util.List;import cn.z_xiaofei168.domain.Orders;import cn.z_xiaofei168.service.OrdersServiceImpl;import com.opensymphony.xwork2.ActionSupport;public class OrdersAction extends ActionSupport {/** * @author z_xiaofei168 */private static final long serialVersionUID = 1L;/** 业务层对象 */private OrdersServiceImpl ordersServiceImpl;private Orders entity;private List<Orders> entities;//以下省略所以的set和get方法/** 级联删除的操作 */public String delete() throws Exception {ordersServiceImpl.delete(entity.getId());return "delete";}}?

?

?? cn.z_xiaofei168.dao包

?

package cn.z_xiaofei168.dao;import java.util.List;import java.util.Set;import org.springframework.orm.hibernate3.support.HibernateDaoSupport;import cn.z_xiaofei168.domain.Orderdetails;import cn.z_xiaofei168.domain.Orders;public class OrdersDaoImpl extends HibernateDaoSupport implements OrdersDao {public void delete(Orders entity) throws Exception {/** 删除订单之前,应该把订单对应的订单明细删除 */Set<Orderdetails> orderdetails = entity.getOrderdetailses();if(orderdetails.size()==0){System.out.println("orderdetails对象为空");}else{for(Orderdetails ord: orderdetails){this.getHibernateTemplate().delete(ord);}}this.getHibernateTemplate().delete(entity);}public void delete(Integer id) throws Exception {this.delete(this.findById(id));}public Orders findById(Integer id) throws Exception {return (Orders) this.getHibernateTemplate().get(Orders.class, id);}}

?

? cn.z_xiaofei168.service包

?

?

package cn.z_xiaofei168.service;import java.util.List;import cn.z_xiaofei168.dao.OrdersDaoImpl;import cn.z_xiaofei168.domain.Orders;public class OrdersServiceImpl implements OrdersService {private OrdersDaoImpl ordersDaoImpl;//set方法注入public void setOrdersDaoImpl(OrdersDaoImpl ordersDaoImpl) {this.ordersDaoImpl = ordersDaoImpl;}public void delete(Integer id) throws Exception {ordersDaoImpl.delete(id);}}

?

?????? 具体的JSP页面就不在这贴了,相信大家都会,都明白。

?????? 大家有什么可以给我留言。

?

10 楼 soliucheng 2011-05-27   就这也好意轴贴出来啊,还那么多步操作,你 象三楼那样配置一下就行了,hibernate又不傻.. 11 楼 z_xiaofei168 2011-05-27   soliucheng 写道就这也好意轴贴出来啊,还那么多步操作,你 象三楼那样配置一下就行了,hibernate又不傻..
你懂什么,在现实的开发中,是不用cascade="delete"的,真怀疑你是不是做开发的。 12 楼 hz020815 2011-05-27   这种方法就没必要贴出来了, 数据展示的时候都用 内联,被删除的自然就看不到 了 13 楼 risemanjavaeye 2011-05-27   我倒是对“代码都写在DAO中了”表示疑问,这样的逻辑应该放在DAO吗?不应该是在服务层吗?我不理解 14 楼 z_xiaofei168 2011-05-27   risemanjavaeye 写道我倒是对“代码都写在DAO中了”表示疑问,这样的逻辑应该放在DAO吗?不应该是在服务层吗?我不理解
业务实现不是在DAO层中吗?? 15 楼 z_xiaofei168 2011-05-27   内联hz020815 写道这种方法就没必要贴出来了, 数据展示的时候都用 内联,被删除的自然就看不到 了
内联??神马? 16 楼 risemanjavaeye 2011-05-29   z_xiaofei168 写道risemanjavaeye 写道我倒是对“代码都写在DAO中了”表示疑问,这样的逻辑应该放在DAO吗?不应该是在服务层吗?我不理解
业务实现不是在DAO层中吗??
在DAO层?算了,我啥也不说了 17 楼 z_xiaofei168 2011-05-31   risemanjavaeye 写道z_xiaofei168 写道risemanjavaeye 写道我倒是对“代码都写在DAO中了”表示疑问,这样的逻辑应该放在DAO吗?不应该是在服务层吗?我不理解
业务实现不是在DAO层中吗??
在DAO层?算了,我啥也不说了
其实我想表达的意思是:业务实现是在SERVICE层的,但是真正的业务实现是在DAO层

热点排行