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 hibernate envers使用过程详解

    Springboot hibernate envers使用过程详解 本文将详细讲解在Spring Boot项目中如何使用Hibernate Envers进行数据版本管理的过程。Envers是一个Hibernate扩展,用于跟踪实体的版本历史记录。通过使用Envers,我们可以在任何时间点查看实体的先前版本。 1. 添加依赖 首先,我们需要将Hibernate…

    Java 2023年5月20日
    00
  • Jmeter BeanShell 内置变量vars、props、prev的使用详解

    下面是“Jmeter BeanShell 内置变量vars、props、prev的使用详解”的完整攻略。 1. 什么是BeanShell内置变量 在Jmeter中,BeanShell是一种脚本语言。当我们需要在Jmeter中编写脚本时,可以使用BeanShell语言。Jmeter中已经内置了许多BeanShell变量,这些变量中包含了大量的信息,可以帮助我们…

    Java 2023年6月15日
    00
  • Java 实现对称加密算法

    Java 实现对称加密算法攻略 对称加密算法指使用同一个密钥进行加解密的加密算法。本攻略将介绍 Java 如何实现对称加密算法,主要包括以下内容: 对称加密算法的种类 Java 中实现对称加密的常用类库 对称加密算法的实现步骤 示例说明 对称加密算法的种类 对称加密算法包括 DES、3DES、AES 等常用算法。其中,AES 目前是最常用的对称加密算法。 J…

    Java 2023年5月26日
    00
  • 基于html5+java实现大文件上传实例代码

    让我详细为您介绍一下“基于html5+java实现大文件上传实例代码”的完整攻略和代码实现。 简介 为了解决传统文件上传方式在处理大文件上传时所面临的性能瓶颈和功能缺失,我们需要使用一些新的技术手段。html5提供了File API来处理客户端文件读取,而java的高性能能力则可以处理并发上传和分片上传等复杂操作,两者结合起来,就能够实现一套优秀的大文件上传…

    Java 2023年5月19日
    00
  • Java中BigDecimal的加减乘除、比较大小与使用注意事项

    Java中BigDecimal的加减乘除、比较大小与使用注意事项 简介 在Java中,double和float等浮点数类型存在精度问题,会出现计算结果不准确的情况。而BigDecimal是一种高精度的数据类型,它可以解决浮点数计算精度问题。BigDecimal的精度可以达到需要表示的精确度,且不会出现计算误差。因此,在需要高精度计算的场合下,我们通常会使用B…

    Java 2023年5月26日
    00
  • Maven添加Tomcat插件实现热部署代码实例

    下面是Maven添加Tomcat插件实现热部署代码实例的完整攻略: 1. 前置条件 在开始之前,请确保你已经完成以下准备工作: 安装了Maven和Tomcat; 确认已经成功启动Tomcat服务器。 2. 添加Tomcat插件 在Maven的pom.xml文件中,添加以下配置,以添加Tomcat插件: <build> <plugins&gt…

    Java 2023年5月19日
    00
  • HashMap和HashTable底层原理以及常见面试题

    HashMap和HashTable底层原理以及常见面试题 1. HashMap和HashTable的区别 HashMap和HashTable都是Java中的重要容器类,它们的目的是为了存放和访问键值对。虽然它们的功能是相似的,但是它们在底层的实现和使用上有很大的不同。 1.1 HashMap HashMap的底层是基于哈希表实现的,其键值对存储在Entry数…

    Java 2023年5月26日
    00
  • Spring Boot整合Web项目常用功能详解

    下面我给你详细讲解SpringBoot整合Web项目常用功能的完整攻略: 一、概述 SpringBoot是一种可以简化Spring应用程序的创建和开发过程的框架。在Web应用程序中,常见的功能包括:前端页面开发、路由、数据接收和处理、数据持久化等。SpringBoot在这些方面均提供了相应的支持和优化,能够让Web应用的开发更加高效和方便。 二、常用功能 1…

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