[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)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • python十进制转换_Python 进制转换

    python十进制转换_Python 进制转换提到进制转换这里需要了解int()这个内置函数,大多数人都会这样用:int(x)其目的一般是将x字符串转化为整数,int()除了这个作用外,还可以将其他进制数转化为十进制数,Python内置函数官方文档从官方文档中我们可以得知内置函数:int(x,base=10)山东掌趣网络科技第二个参数默认base=10,页就是我们常用的字符串转换为十进制整数,由此,我们改变第二个参数可以将其他进制的数转…

    2022年5月12日
  • ReadProcessMemory函数的分析「建议收藏」

    ReadProcessMemory函数的分析「建议收藏」ReadProcessMemory函数用于读取其他进程的数据。我们知道自远古时代结束后,user模式下的进程都有自己的地址空间,进程与进程间互不干扰,这叫私有财产神圣不可侵犯。但windows里还真就提供了那么一个机制,让你可以合法的获取别人的私有财产,这就是ReadProcessMemory和WriteProcessMemory。为什么一个进程居然可以访问另一个进程的地址空间呢?因为独立的只是低

    2022年10月4日
  • 行存储 VS 列存储[通俗易懂]

    行存储 VS 列存储[通俗易懂]概述目前大数据存储有两种方案可供选择:行存储(Row-Based)和列存储(Column-Based)。业界对两种存储方案有很多争持,集中焦点是:谁能够更有效地处理海量数据,且兼顾安全、可靠、完整性。从目前发展情况看,关系数据库已经不适应这种巨大的存储量和计算要求,基本是淘汰出局。在已知的几种大数据处理软件中,Hadoop的HBase采用列存储,MongoDB是文档型的行存储,Lexst是二进制型…

    2022年7月14日
  • cmd查看端口号是否占用

    cmd查看端口号是否占用1.查看所有端口号 netstat2.查看指定的端口号netstat-ano|findstr"8088"

    2022年5月19日
  • tcp 校验和_tcp如何保证有序

    tcp 校验和_tcp如何保证有序1.tcp校验和接收方在接收数据时检验数据包在传输过程中是否改变的验证方式发送方将数据体取反码,检验和也取反码相加,高于4bit的和低于4bit的相加,得到的就是校验和,保存在tcp头的校验和字段,接收方将数据取反码,校验和取反码,相加为1111则数据包没有异常,否则丢弃数据包。参考此文2.为什么Internet协议:IP,ICMP,IGMP,UDP,TCP收到有…

    2022年10月29日
  • 学生网上选课管理系统_选课管理系统

    学生网上选课管理系统_选课管理系统**数据库系统原理课程设计报告**学生选课管理系统(上)设计内容与要求:1、系统用户由三类组成:教师、学生和管理员。2、管理员负责的主要功能:①用户管理(老师、学生及管理员的增、删、改);②课程管理(添加、删除和修改);③选课管理(实现选课功能开放和禁止、老师成绩输入开放和禁止)。3、学生通过登录,可以查询课程的基本信息、实现选课、退课和成绩查询;4、老师通过登录,可以查看选…

    2022年10月16日

发表回复

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

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