当前位置:网站首页>[SSH]如何敲一条线
[SSH]如何敲一条线
2022-08-09 23:06:00 【全栈程序员站长】
大家好,又见面了,我是你们的朋友全栈君。
网上商城用的是struts+spring+hibernate的框架,在这个框架中是如何来完成一个功能呢?我们以查询订单为例,具体流程如下:
一.新建包
在src文件夹下新建关于订单的包,主要有action,service,dao和vo,这也体现了分层的思想,与之对应的便是表示层,业务逻辑层,数据持久层和模块层。主要的层次结构为
二.新建类
在各个包中建立相应的类
包 | 类 | 描述 |
---|---|---|
action | OrderAction.java | 用于接收页面传来的数据以及给页面返回信息 |
service | OrderService.java | 对action传来的功能进行处理 |
dao | OrderDao.java | 对数据进行操作 |
vo | Order.java | 实体类,相当于Order表 |
三.在类中写相应的方法
1.Order类
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配置文件,用来建立和数据库的对应关系
<?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的引用
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类
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类
完成订单的查询功能
public class OrderDao extends HibernateDaoSupport {
// DAO层根据订单id查询订单
public Order findByOid(Integer oid) {
return this.getHibernateTemplate().get(Order.class, oid);
}
}
四.写配置文件
1.编写spring配置文件
1.配置Hibernate的映射文件
<!-- 配置Hibernate的映射文件 -->
<property name="mappingResources">
<list>
<value>cn/itcast/shop/order/vo/Order.hbm.xml</value>
</list>
</property>
2.完成各个层的配置
<!--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">
<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配置文件
<!-- 订单的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
边栏推荐
猜你喜欢
YOLOV5学习笔记(七)——训练自己数据集
Mysql/stonedb - slow SQL - 2022-08-09 Q16 analysis
Golden Warehouse Database KingbaseGIS User Manual (6.5. Geometry Object Editing Function)
Wireshark classic practice and interview 13-point summary
Digital wallets, red sea ecological rapid introduction of small programs can help capture device entry wisdom
如何抑制告警风暴?
阿里云短信服务开通
ES6 Beginner to Mastery #13: Extension Methods for Arrays 2
MVC与MVVM模式的区别
微信小程序获取微信用户步数
随机推荐
Click: 377. Combined Sum Ⅳ
MVC与MVVM模式的区别
Distributed database problem (2): data replication
AirFlow介绍
【猜凶手,猜名次,杨辉三角】经典小学奥数的代码逻辑是什么?
信息系统项目管理师核心考点(六十四)信息安全基础知识重要概念
Mysql/stonedb - slow SQL - 2022-08-09 Q16 analysis
多商户商城系统功能拆解25讲-平台端分销申请
【集训DAY4】矩形【线段树】
Golden Warehouse Database KingbaseGIS User Manual (6.5. Geometry Object Editing Function)
直播app开发搭建,flutter 实现自适应、自动换行、相对布局
FreeRTOS任务基础
上交所实时行情文件汇总
下载markdown软件Obsidian(解决官网下载速度慢)
YOLOV5学习笔记(七)——训练自己数据集
【哲理】读书的意义
CAD 绘制圆角处理
ECCV 2022 | 微软开源TinyViT :搞定小模型的预训练能力
[Cloud Native] This article explains how to add Tencent Crane to Kubevela addon
Service Discovery @EnableDiscoveryClient