[SSH]如何敲一条线

[SSH]如何敲一条线[SSH]如何敲一条线

大家好,又见面了,我是你们的朋友全栈君。

    网上商城用的是struts+spring+hibernate的框架,在这个框架中是如何来完成一个功能呢?我们以查询订单为例,具体流程如下:

一.新建包

    在src文件夹下新建关于订单的包,主要有action,service,dao和vo,这也体现了分层的思想,与之对应的便是表示层,业务逻辑层,数据持久层和模块层。主要的层次结构为

[SSH]如何敲一条线

二.新建类

    在各个包中建立相应的类

描述

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.net/105714.html原文链接:https://javaforall.net

(0)
上一篇 2022年4月25日 上午6:40
下一篇 2022年4月25日 上午6:40


相关推荐

  • 2019年长沙前端技术分享大会圆满成功

    做一个积极的人编码、改bug、提升自己我有一个乐园,面向编程,春暖花开!本文首发: 唐胡子俱乐部,授权发布!摘要长沙百名互联网前端程序员齐聚长沙互联网活动基地(唐胡子俱乐部)。主办单位:唐胡子俱乐部支持单位:芒果TV,拓维,湘邮,58到家,御泥坊,兴盛优选,中软国际,长海科技,长沙联通时 间:2019年5月19日—————————-…

    2022年2月28日
    402
  • ramdisk使用

    ramdisk使用1 下载 AMDRAMDisk 工具 http down tech sina com cn content 55660 html 2 配置 3 修改系统中的 temp 位置 IE 临时文件修改默认路径 C Users douzi AppData Local Microsoft Windows

    2026年3月19日
    1
  • 免费教学:OpenClaw接入QQ保姆级教程,1分钟打造专属AI助手

    免费教学:OpenClaw接入QQ保姆级教程,1分钟打造专属AI助手

    2026年3月13日
    2
  • Python脚本语言第一行的写法「建议收藏」

    Python脚本语言第一行的写法「建议收藏」脚本语言的第一行,目的就是指出,你想要你的这个文件中的代码用什么可执行程序去运行它,就这么简单#!/usr/bin/python是告诉操作系统执行这个脚本的时候,调用/usr/bin下的python

    2022年7月6日
    37
  • CPU核数和load average的关系「建议收藏」

    CPU核数和load average的关系「建议收藏」在前面的文章《Linux系统监控——top命令》中我简单提到了,判断loadaverage的数值到底大不大的判断依据,就是数值除以CPU核数,大于5,就说明超负荷运转了。——这里其实不太严谨今天这篇文章来仔细分析分析,CPU和loadaverage的关系。转载文章一我们知道判断一个系统的负载可以使用top,uptime等命令去查看,它分别记录了一分钟、五分钟、以及十五分钟的系统…

    2022年7月17日
    27
  • html、css 实现二级菜单「建议收藏」

    html、css 实现二级菜单「建议收藏」利用html、css实现二级菜单,一级菜单用浮动,二级菜单用定位

    2022年5月31日
    33

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号