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


相关推荐

  • linux fork函数浅析

    linux fork函数浅析

    2021年11月28日
    32
  • golang激活码2021破解方法

    golang激活码2021破解方法,https://javaforall.net/100143.html。详细ieda激活码不妨到全栈程序员必看教程网一起来了解一下吧!

    2022年3月15日
    76
  • jedispool 连接池_redis-cli连接redis数据库

    jedispool 连接池_redis-cli连接redis数据库一、连接前的准备1.确保windows能够ping通linux,linux能够ping通windows。2.开放CentOS7的端口6379。firewall-cmd–add-port=6379/tcp–permanent3.注释掉redis.conf文件中的bind。#bind127.0.0.14….

    2025年9月12日
    7
  • sqrt mysql_详解MySQL中的SQRT函数的使用方法_MySQL

    sqrt mysql_详解MySQL中的SQRT函数的使用方法_MySQLMySQL的SQRT函数是用来计算出任何数量的平方根。可以使用SELECT语句找出方检定根的任意数如下:mysql>selectSQRT(16);+———-+|SQRT(16)|+———-+|4.000000|+———-+1rowinset(0.00sec)所看到的浮点值,因为内部MySQL将处理浮点数据类型的平方根。可以使用SQRT…

    2022年5月9日
    74
  • phpstrom2021激活码【2021最新】

    (phpstrom2021激活码)这是一篇idea技术相关文章,由全栈君为大家提供,主要知识点是关于2021JetBrains全家桶永久激活码的内容IntelliJ2021最新激活注册码,破解教程可免费永久激活,亲测有效,下面是详细链接哦~https://javaforall.net/100143.html1STL5S9V8F-eyJsa…

    2022年3月27日
    51
  • 新人学习EJB!ejb到底是什么?[通俗易懂]

    1. 我们不禁要问,什么是”服务集群”?什么是”企业级开发”? 既然说了EJB是为了”服务集群”和”企业级开发”,那么,总得说说什么是所谓的”服务集群”和”企业级开发”吧!这个问题其实挺关键的,因为J2EE中并没有说明白,也没有具体的指标或者事例告诉广大程序员什么时候用EJB什么时候不用。于是大家都产生一些联想,认为EJB”分布式运算”指得是”负载均衡”提高系统的运行效率

    2022年4月5日
    249

发表回复

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

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