大家好,又见面了,我是你们的朋友全栈君。
网上商城用的是struts spring hibernate的框架,在这个框架中是如何来完成一个功能呢?我们以查询订单为例,具体流程如下:
一.新建包
在src文件夹下新建关于订单的包,主要有action,service,dao和vo,这也体现了分层的思想,与之对应的便是表示层,业务逻辑层,数据持久层和模块层。主要的层次结构为
二.新建类
在各个包中建立相应的类
包 | 类 | 描述 |
---|---|---|
action | OrderAction.java | 用于接收页面传来的数据以及给页面返回信息 |
service | OrderService.java | 对action传来的功能进行处理 |
dao | OrderDao.java | 对数据进行操作 |
vo | Order.java | 实体类,相当于Order表 |
三.在类中写相应的方法
1.Order类
代码语言:javascript复制public class Order {
private Integer oid;
private Date ordertime;
……
public Integer getOid() {
return oid;
}
public void setOid(Integer oid) {
this.oid = oid;
}
}
public Date getOrdertime() {
return ordertime;
}
public void setOrdertime(Date ordertime) {
this.ordertime = ordertime;
}
……
}
在vo包下还需要创建关于订单的hibernate配置文件,用来建立和数据库的对应关系
代码语言:javascript复制<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE hibernate-mapping PUBLIC
"-//Hibernate/Hibernate Mapping DTD 3.0//EN"
"http://www.hibernate.org/dtd/hibernate-mapping-3.0.dtd">
<hibernate-mapping>
<class name="cn.itcast.shop.order.vo.Order" table="orders">
<id name="oid">
<generator class="native"/>
</id>
<property name="total"/>
<property name="ordertime"/>
</class>
</hibernate-mapping>
2.OrderAction类
在表示层,首先要添加对实体和Service的引用
代码语言:javascript复制public class OrderAction extends ActionSupport implements ModelDriven<Order> {
// 模型驱动使用的对象
private Order order = new Order();
public Order getModel() {
return order;
}
// 注入OrderService
private OrderService orderService;
public void setOrderService(OrderService orderService) {
this.orderService = orderService;
}
// 根据订单id查询订单:
public String findByOid() {
order = orderService.findByOid(order.getOid());
return "findByOid";
}
}
3.OrderService类
代码语言:javascript复制public class OrderService {
// 注入OrderDao
private OrderDao orderDao;
public void setOrderDao(OrderDao orderDao) {
this.orderDao = orderDao;
}
// 根据订单id查询订单
public Order findByOid(Integer oid) {
return orderDao.findByOid(oid);
}
}
4.OrderDao类
完成订单的查询功能
代码语言:javascript复制public class OrderDao extends HibernateDaoSupport {
// DAO层根据订单id查询订单
public Order findByOid(Integer oid) {
return this.getHibernateTemplate().get(Order.class, oid);
}
}
四.写配置文件
1.编写spring配置文件
1.配置Hibernate的映射文件
代码语言:javascript复制<!-- 配置Hibernate的映射文件 -->
<property name="mappingResources">
<list>
<value>cn/itcast/shop/order/vo/Order.hbm.xml</value>
</list>
</property>
2.完成各个层的配置
代码语言:javascript复制 <!--action的配置-->
<bean id="orderAction" class="cn.itcast.shop.order.action.OrderAction" scope="prototype">
<property name="orderService" ref="orderService"/>
</bean>
<!--service的配置-->
<bean id="orderService" class="cn.itcast.shop.order.service.OrderService">
代码语言:javascript复制 <property name="orderDao" ref="orderDao"/>
</bean>
<!--dao的配置-->
<bean id="orderDao" class="cn.itcast.shop.order.dao.OrderDao">
<property name="sessionFactory" ref="sessionFactory"/>
</bean>
2.编写struts配置文件
代码语言:javascript复制<!-- 订单的Action -->
<action name="order_*" class="orderAction" method="{1}">
<!-- 对应action层中的方法名,以及需要跳转的页面 -->
<result name="findByUid">/WEB-INF/jsp/orderList.jsp</result>
</action>
这样就基本完成了后台的功能,和前台界面交互就可以了。
发布者:全栈程序员栈长,转载请注明出处:https://javaforall.cn/105714.html原文链接:https://javaforall.cn