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

本文将详细讲解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日

相关文章

  • springboot通过jar包启动中文日志乱码问题及解决

    针对“springboot通过jar包启动中文日志乱码问题及解决”这个主题,我将给出完整的攻略,如下: 1. 问题描述 当使用Spring Boot通过jar包启动项目时,可能会遇到中文日志输出乱码的问题。 2. 问题解决 要解决这个问题,需要在应用程序的配置中设置日志输出编码。具体步骤如下: 2.1 设置日志输出编码 在Spring Boot应用程序的配置…

    Java 2023年5月20日
    00
  • Java语法基础之循环结构语句详解

    Java语法基础之循环结构语句详解 简介 循环结构是编程语言中非常重要的一部分,可以让程序轻松地重复执行特定的任务,提高代码的复用性和效率。Java 语言支持多种循环结构语句,其中包括 for、while 和 do-while 三种类型。在本篇文章中,我们将详细介绍循环结构语句在 Java 语言中的应用。 for 循环 for 循环语句是 Java 语言中最…

    Java 2023年5月23日
    00
  • js+css实现的简单易用兼容好的分页

    这里是“js+css实现的简单易用兼容好的分页”的完整攻略: 什么是分页 分页指的是将大量数据分成多个页面,每次只显示其中的一部分数据,通过点击下一页或上一页来切换页面。常见的应用包括商城商品列表、新闻列表等。 分页的实现 HTML 首先,我们需要在HTML页面中添加分页的DOM结构。一般来说,分页的结构包含上一页、下一页、页码数等元素。 <div c…

    Java 2023年6月16日
    00
  • 分析讲解SpringMVC注解配置如何实现

    下面是分析讲解SpringMVC注解配置如何实现的完整攻略: 一、SpringMVC注解配置的基本原理 SpringMVC注解配置是指使用注解的方式对SpringMVC进行配置。通过注解的方式,我们可以更加方便、简洁地进行配置,同时也可以大大降低代码量。SpringMVC注解配置的基本原理如下: 1.在SpringMVC的配置文件中,添加注解驱动配置: &l…

    Java 2023年5月16日
    00
  • 什么是Java代理?

    什么是Java代理? Java代理是一种设计模式,它允许在不改变目标对象的情况下代理对象与目标对象交互。代理对象可以在执行目标对象之前或之后执行其他操作,在不影响目标对象的情况下维护目标对象的状态。Java中有两种类型的代理:静态代理和动态代理。 静态代理 静态代理是在自己的类中实现代理的一种方式。创建一个代理类,通过实现与目标对象相同的接口来实现代理。使用…

    Java 2023年5月11日
    00
  • Unicode、UTF-8 和 ISO8859-1区别解析

    让我来讲解一下”Unicode、UTF-8 和 ISO8859-1区别解析”。 什么是 Unicode Unicode是一种由国际组织维护的全球字符集标准。它的目标是支持世界上所有字符集,并成为一种数字化的字符编码方案。 Unicode字符集包括ASCII码字符集,而且还包括通用秒(第0平面)字符,这是其他字符集都没有的。通用多文本字符集,包括汉字字符集(第…

    Java 2023年5月20日
    00
  • Sprint Boot @NotBlank使用方法详解

    以下是关于Spring Boot中@NotBlank的作用与使用方法的完整攻略,包含两个示例: @NotBlank的作用 @NotBlank是Spring Boot提供的一个注解,用于验证字符串类型的请求参数是否为空或空格。它可以用于验证请求参数的有效性,以确保用程序的正确性和安全性。 @NotBlank的使用方法 以下是使用@NotBlank的示例: 验证…

    Java 2023年5月5日
    00
  • 一篇文章解决Java异常处理

    一篇文章解决Java异常处理的完整攻略 Java是一种面向对象的编程语言,设计初衷之一就是为了减轻程序员的负担,让程序员能够更好地管理代码和实现业务逻辑。然而,即便Java已经尽力省略了一些开发工作量,但仍有许多棘手的问题需要程序员自己去解决。其中一个常见的问题就是异常处理。 什么是Java异常? 异常是Java语言的对象,它表示在程序运行期间发生的不正常情…

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