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


相关推荐

  • Ajax 跨域,这应该是最全的解决方案了

    Ajax 跨域,这应该是最全的解决方案了

    2021年10月13日
    40
  • 房费制——报表(1)

    房费制——报表(1)

    2022年1月4日
    51
  • oj在计算机领域中指什么,【计算机专业论文】计算机专业教学中OJ平台的应用(共2762字)…

    oj在计算机领域中指什么,【计算机专业论文】计算机专业教学中OJ平台的应用(共2762字)…摘要:传统的教学模式对计算机专业学生的能力培养存在着诸多问题,而OJ(OnlineJudge在线检测程序源代码)平台为计算机教学提供了新的思路,因为OJ平台在学生日常训练方面有一套行之有效的机制,所以对学生的学习兴趣、分析解决问题能力、创新能力等方面的培养都起到了积极的推动作用,OJ平台还可以对学生实践能力进行最直接的考核,因此将OJ平台引入计算机专业教学,可实现以平台促教学,以平台促教改。关键词…

    2022年6月16日
    31
  • C++数组初始化[通俗易懂]

    C++数组初始化[通俗易懂]C++数组初始化定义:int*pia=newint[10];// arrayof10uninitialized ints此 new 表达式分配了一个含有10个 int 型元素的数组,并返回指向该数组第一个元素的指针,此返回值初始化了指针 pia。在自由存储区中创建的数组对象是没有名字的,只能通过其地址间接地访问堆中的对象。注意:C++使用new和delete…

    2022年7月18日
    25
  • 国外常用的免费DNS域名解析服务器「建议收藏」

    国外常用的免费DNS域名解析服务器「建议收藏」在国内注册的域名默认使用的是国内域名注册商提供的DNS服务器,国内的DNS服务器可能受政策的影响停止解析域名,网络上传说以后没有BeiAn的域名国内将不给解析。为了避免国内的这些政策,建议使用国外的域名服务:如果您还没有注册域名,请不要在国内注册域名。如果您已经在国内注册了域名,但由于国内注册商赖皮,不给您转移密码,您还可以使用国外的免费DNS服务器。国外免费DNS

    2022年6月22日
    188
  • zipfile模块使用「建议收藏」

    zipfile模块使用「建议收藏」zipfile模块zipfile说明zipfile的常用方法:is_zipfile():ZipFile类的常用方法:ZipFile():ZipFile.close():ZipFile.getinfo(),ZipFile.infolist()和ZipFile.namelist()ZipFile.extract()和ZipFile.extractall()ZipFile.printdir()和ZipFile.read()ZipFile.write()和ZipFile.writestr():ZipInfo类的常用

    2025年12月13日
    3

发表回复

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

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