SSH框架网上商城项目第2战之基本增删查改、Service和Action的抽取

yizhihongxing

本文将详细讲解SSH框架网上商城项目第2战之基本增删查改、Service和Action的抽取的完整攻略,包括概述、步骤、示例等内容。

概述

SSH框架是指以Struts2作为Web层,Spring作为业务层和数据访问层的容器,Hibernate作为数据持久化层的开发框架。本次攻略的目的是介绍如何在SSH框架下实现基本增删查改操作,以及Service和Action的抽取,帮助开发者快速搭建Web应用程序。

步骤

1. 创建数据库和表

首先需要创建一个数据库和相应的表,以便于对数据进行操作。

例如,我们创建一个shop数据库,其中包含一个goods表:

CREATE DATABASE `shop` DEFAULT CHARACTER SET utf8 COLLATE utf8_general_ci;

USE `shop`;

CREATE TABLE `goods` (
  `id` int(11) NOT NULL AUTO_INCREMENT,
  `name` varchar(255) NOT NULL,
  `price` decimal(10,2) NOT NULL,
  `description` text,
  PRIMARY KEY (`id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8;

2. 创建JavaBean

其次需要创建一个JavaBean,用于封装goods表的数据。

例如,我们创建一个Good类,其中包含id、name、price、description四个属性,并为每个属性添加getter和setter方法:

public class Good {
    private int id;
    private String name;
    private BigDecimal price;
    private String description;

    // getter 和 setter 方法
}

3. 创建Dao层

然后需要创建一个Dao层,用于实现对数据库的增删查改操作。

例如,我们创建一个GoodDao接口和它的实现类GoodDaoImpl,其中包含增删查改四个方法:

public interface GoodDao {
    void save(Good good);
    void delete(Good good);
    void update(Good good);
    Good findById(int id);
}

public class GoodDaoImpl extends BaseDaoImpl<Good> implements GoodDao {
    // 实现 GoodDao 接口
}

注意:这里GoodDaoImpl继承了一个BaseDaoImpl类,我们可以将一些公共的CRUD操作抽离出来,然后在BaseDaoImpl中实现。这样能够避免重复代码,提高开发效率。

4. 创建Service层

接着需要创建一个Service层,用于封装Dao层的操作,并暴露给Action层调用。

例如,我们创建一个GoodService接口和它的实现类GoodServiceImpl,其中包含增删查改四个方法:

public interface GoodService {
    void save(Good good);
    void delete(Good good);
    void update(Good good);
    Good findById(int id);
}

public class GoodServiceImpl extends BaseServiceImpl<Good> implements GoodService {
    // 实现 GoodService 接口
}

注意:这里GoodServiceImpl继承了一个BaseServiceImpl类,我们可以将一些公共的CRUD操作抽离出来,然后在BaseServiceImpl中实现。这样能够避免重复代码,提高开发效率。

5. 创建Action层

最后需要创建一个Action层,用于处理用户请求,调用Service层获取数据,然后将数据返回给用户。

例如,我们创建一个GoodAction类,其中包含增删查改四个方法:

public class GoodAction extends BaseAction<Good> {
    // 实现增删查改方法
}

注意:这里GoodAction继承了一个BaseAction类,我们可以将一些公共的操作抽离出来,然后在BaseAction中实现。这样能够避免重复代码,提高开发效率。

6. 配置XML文件

最后需要在Spring和Struts2的XML配置文件中进行相应的配置。

例如,我们在spring.xml中配置一个bean,用于注入GoodDaoImpl实例:

<bean id="goodDao" class="com.example.dao.impl.GoodDaoImpl">
    <property name="sessionFactory" ref="sessionFactory"></property>
</bean>

在struts.xml中配置一个action,用于映射GoodAction和对应的页面:

<package name="good" namespace="/" extends="struts-default">
    <action name="good_*" class="com.example.action.GoodAction" method="{1}">
        <result name="success" type="redirectAction">good_list</result>
    </action>
    <action name="good_list" class="com.example.action.GoodAction" method="list">
        <result name="success">/good/list.jsp</result>
    </action>
</package>

示例

下面给出两个示例,分别是新增商品和查询商品:

示例1:新增商品

  1. 用户在新增商品页面上填写信息,包括商品名称、商品价格、商品描述等;
  2. 用户提交表单数据,发送POST请求到服务器;
  3. 服务器接收到请求,将表单数据封装成Good对象;
  4. 服务器调用GoodService的save方法,将Good对象保存到数据库中;
  5. 服务器重定向到商品列表页面,显示最新的商品信息。

示例2:查询商品

  1. 用户在商品列表页面上点击某个商品的信息;
  2. 用户发送GET请求到服务器,获取该商品的详细信息;
  3. 服务器接收到请求,从数据库中查询对应的Good对象;
  4. 服务器将Good对象作为模型数据,返回给商品详情页面;
  5. 服务器在商品详情页面上渲染模型数据,显示商品的详细信息。

总结

本攻略详细介绍了SSH框架网上商城项目第2战之基本增删查改、Service和Action的抽取的完整攻略。通过本文的学习,读者可以了解SSH框架的基本操作,并实现一个简单的Web应用程序。

本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:SSH框架网上商城项目第2战之基本增删查改、Service和Action的抽取 - Python技术站

(0)
上一篇 2023年6月15日
下一篇 2023年6月15日

相关文章

  • java中文传值乱码问题的解决方法

    当我们在Java中传输中文字符时,经常会出现乱码问题,这是因为在Java中默认采用的是UTF-8编码,而在数据传输过程中有可能会出现编码不一致的情况。下面是解决Java中文传值乱码问题的方法攻略。 步骤一:确定编码方式 在Java中,我们可以使用String类的getBytes()方法获取字节数组,用于判断当前字符串的编码格式。一般情况下,如果编码方式是UT…

    Java 2023年5月20日
    00
  • 通过Java实现添加或删除PDF中的附件

    这里介绍通过Java实现添加或删除PDF中的附件的完整攻略: 1. 添加附件 1.1 引入相关库 import java.io.File; import java.io.FileInputStream; import java.io.FileOutputStream; import java.io.IOException; import org.apache…

    Java 2023年5月19日
    00
  • eclipse+maven+spring mvc项目基本搭建过程

    下面是使用Eclipse、Maven和Spring MVC搭建Web项目的基本过程: 步骤一:安装Eclipse和Maven 首先,需要安装Eclipse和Maven。可以从官方网站下载并安装最新版本的Eclipse和Maven。 步骤二:创建Maven项目 在Eclipse中,选择File -> New -> Other,然后在弹出的对话框中选…

    Java 2023年5月17日
    00
  • Mybatis中动态SQL,if,where,foreach的使用教程详解

    “Mybatis中动态SQL,if,where,foreach的使用教程详解”是一个相当重要的主题,因为它可以帮助我们在Mybatis中更好地处理和生成SQL语句。在这篇攻略中,我们将会从头开始,详细介绍如何使用Mybatis来生成精准的、动态的SQL语句,并且辅以两条相应的示例。 什么是动态SQL? 在Mybatis中提供了一系列动态SQL元素,这些元素允…

    Java 2023年5月20日
    00
  • Java中常见的查找算法与排序算法总结

    Java中常见的查找算法与排序算法总结 在Java中,我们经常需要对数据进行查找和排序。这里我们总结了常见的查找算法和排序算法。 查找算法 1. 顺序查找 顺序查找也叫线性查找,它的思想是从数据序列的一端开始,逐个比较数据,直到找到满足条件的数据或者遍历完整个序列。 以下是Java代码示例: public static int sequenceSearch(…

    Java 2023年5月19日
    00
  • JSP中param动作的实例详解

    当我们想要把参数传递给 JSP 页面时,param 动作是一种非常有用的方法。通过在 JSP 页面中使用 param 动作,我们可以轻松地向页面中传递参数,这些参数可以来自域对象,例如 request、session 或 application,也可以来源于页面 URL 中的查询字符串或表单提交。本文将为大家深入详解 param 动作的用法,通过两个实例帮助…

    Java 2023年6月15日
    00
  • Java Excel数据导入数据库的方法

    下面是详细的“Java Excel数据导入数据库的方法”的攻略: 准备工作 在进行Java Excel数据导入数据库的操作之前,需要先安装以下软件: Java SE Development Kit (JDK):Java开发套件,提供Java编程所需的基本工具。 Apache POI:Java操作Office文件的API,提供对Excel、Word和Power…

    Java 2023年5月20日
    00
  • Android Activity生命周期详解

    下面是关于“Android Activity生命周期详解”的完整攻略。 简介 很多初学者在学习 Android 开发时容易被 Activity 的生命周期所迷惑。但实际上,了解生命周期可以帮助我们更好地理解 Activity 的内部操作以及增强应用程序的用户体验。 Activity 的生命周期由一系列的阶段组成,从 Activity 的启动到关闭,包括一些生…

    Java 2023年6月15日
    00
合作推广
合作推广
分享本页
返回顶部