一、设计流程

1.1 框架

  1. 框架:ssm架构: 三层技术栈spring + springMVC + mybatis
  2. 商品管理系统:商品表、 品牌表、类别表

    1.2 商品列表展示、商品上架(业务)

  3. 添加的业务

  • 商品上架,如果商品在仓库中存在,那么我们直接库存+1,如果商品不存在那么直接执行添加的功能
  • 上架时间需要获取上架时, 系统的时 间
  1. 分页
  • 分页功能:分页单位(几条数据为一-页)、起始索引位置、页面值(上一页、下一页、尾页、首页)、当前页。

、区间模糊查询、编辑、批量删除、登录注册

二、具体实施

2.1 项目搭建

2.1.1 数据库建表

image.pngimage.png
image.png
如上建表,分别是表1、2、3.商品品牌表、类别表、商品表。

2.2.2 开发框架搭建

首先建立工程时一定要注意,meavn工程需要修改默认的meavn_work库,否则一次进行过多的资源定位,会导致资源定位导入的jar包丢失,需要重新下载导入。

  1. 添加webapplication。
  2. 导入坐标;代码段一。
  3. 部署tomcat服务器。

    4. 建立包结构

    image.png
    生成每个实体类对应的接口,为每个接口配置xml配置文件,添加依赖并指定全类名。
    image.png

    2.2.3 ssm框架的配置文件

    在核心配置文件web.xml中进行配置:代码附录二

  4. 配置前端总控制器dispatcherServlet

    dispatcherServlet org.springframework.web.servlet.DispatcherServlet

  5. 绑定springmvc的核心配置文件

    1. <param-name>contextConfigLocation</param-name>
    2. <param-value>classpath:springmvc.xml</param-value>

  6. 设置启动级别

    1

  7. 拦截所有的客户端请求

    1. <servlet-name>dispatcherServlet</servlet-name>
    2. <url-pattern>/</url-pattern>

  8. 绑定spring的核心配置文件

    1. <param-name>contextConfigLocation</param-name>
    2. <param-value>classpath:beans.xml</param-value>

  9. 配置一个监听器

    org.springframework.web.context.ContextLoaderListener
  10. 注册一个编码过滤器

    characterEncodingFilter org.springframework.web.filter.CharacterEncodingFilter encoding utf-8
  11. 拦截客户端所有的资源(包括静态资源)

    1. <filter-name>characterEncodingFilter</filter-name>
    2. <url-pattern>/*</url-pattern>

image.png

beans.xml文件配置;

  1. 开启扫描包

  2. 读取配置文件获取数据源信息

  3. 配置数据源对象






  4. 配置mybatis需要的工厂对象





  5. 配置mybatis的扫描器

pring会扫描持久层所有的接口,mybatis会创建接口对应的代理对象(接口实现类),将实现类的实例转载进spring核心容器中


2.2 功能开发

首先可以简单的做个测试,测试架子是否能正常调通。

2.2.1 界面数据展示

首先,新建jsp文件夹,编写goods_list. jsp,编写对应的xml文件

2.2.3 分页展示信息模块

分页逻辑:主要写在Controller层,注意写一个获取当前信息条数的方法。使用sql去查记录。
主要分页:

  • 起始页()、
  • 上一页(判断当前是否为第一页,否则页数加一)、
  • 下一页(判断是否为尾页),
  • 尾页()
  • 分页起始索引位置:(当前页-1)×分页单位

写查询:

  • 将其实索引位置、分页单位分别以map键值对的形式存入map集合并传递给持久层。注意使用方法。
  • 写分页sql需要用到其实索引位置和分页单位。
  • 写好sql


    页码值存在作用域中;

2.2.4 数据的回显、数据修改更新

主要使用的是ajax完成数据的回显,

附录

代码段一:导入坐标

  1. <!--导入坐标-->
  2. <dependencies>
  3. <!--扫入spring相关依赖-->
  4. <dependency>
  5. <groupId>org.springframework</groupId>
  6. <artifactId>spring-core</artifactId>
  7. <version>5.2.1.RELEASE</version>
  8. </dependency>
  9. <dependency>
  10. <groupId>org.springframework</groupId>
  11. <artifactId>spring-web</artifactId>
  12. <version>5.2.1.RELEASE</version>
  13. </dependency>
  14. <dependency>
  15. <groupId>org.springframework</groupId>
  16. <artifactId>spring-oxm</artifactId>
  17. <version>5.2.1.RELEASE</version>
  18. </dependency>
  19. <dependency>
  20. <groupId>org.springframework</groupId>
  21. <artifactId>spring-tx</artifactId>
  22. <version>5.2.1.RELEASE</version>
  23. </dependency>
  24. <dependency>
  25. <groupId>org.springframework</groupId>
  26. <artifactId>spring-jdbc</artifactId>
  27. <version>5.2.1.RELEASE</version>
  28. </dependency>
  29. <dependency>
  30. <groupId>org.springframework</groupId>
  31. <artifactId>spring-webmvc</artifactId>
  32. <version>5.2.1.RELEASE</version>
  33. </dependency>
  34. <!-- <dependency>
  35. <groupId>javax.servlet</groupId>
  36. <artifactId>servlet-api</artifactId>
  37. <version>2.5</version>
  38. </dependency>-->
  39. <dependency>
  40. <groupId>org.springframework</groupId>
  41. <artifactId>spring-aop</artifactId>
  42. <version>5.2.1.RELEASE</version>
  43. </dependency>
  44. <dependency>
  45. <groupId>org.springframework</groupId>
  46. <artifactId>spring-context</artifactId>
  47. <version>5.2.1.RELEASE</version>
  48. </dependency>
  49. <dependency>
  50. <groupId>org.springframework</groupId>
  51. <artifactId>spring-test</artifactId>
  52. <version>5.2.1.RELEASE</version>
  53. </dependency>
  54. <!-- mybatis核心包 -->
  55. <dependency>
  56. <groupId>org.mybatis</groupId>
  57. <artifactId>mybatis</artifactId>
  58. <version>3.4.5</version>
  59. </dependency>
  60. <!-- mybatis/spring包 -->
  61. <dependency>
  62. <groupId>org.mybatis</groupId>
  63. <artifactId>mybatis-spring</artifactId>
  64. <version>1.3.2</version>
  65. </dependency>
  66. <!-- 导入java ee jar 包 -->
  67. <dependency>
  68. <groupId>javax</groupId>
  69. <artifactId>javaee-api</artifactId>
  70. <version>7.0</version>
  71. </dependency>
  72. <!-- 导入Mysql数据库链接jar包 -->
  73. <dependency>
  74. <groupId>mysql</groupId>
  75. <artifactId>mysql-connector-java</artifactId>
  76. <version>8.0.22</version>
  77. </dependency>
  78. <!--日志-->
  79. <dependency>
  80. <groupId>log4j</groupId>
  81. <artifactId>log4j</artifactId>
  82. <version>1.2.17</version>
  83. </dependency>
  84. <!--连接池-->
  85. <dependency>
  86. <groupId>commons-dbcp</groupId>
  87. <artifactId>commons-dbcp</artifactId>
  88. <version>1.2.2</version>
  89. </dependency>
  90. <!--连接池-->
  91. <dependency>
  92. <groupId>com.mchange</groupId>
  93. <artifactId>c3p0</artifactId>
  94. <version>0.9.5.5</version>
  95. </dependency>
  96. <dependency>
  97. <groupId>jstl</groupId>
  98. <artifactId>jstl</artifactId>
  99. <version>1.2</version>
  100. </dependency>
  101. <dependency>
  102. <groupId>com.alibaba</groupId>
  103. <artifactId>fastjson</artifactId>
  104. <version>1.2.47</version>
  105. </dependency>
  106. <!--支持mvc给前端返回json数据-->
  107. <dependency>
  108. <groupId>com.fasterxml.jackson.core</groupId>
  109. <artifactId>jackson-databind</artifactId>
  110. <version>2.9.5</version>
  111. </dependency>
  112. <dependency>
  113. <groupId>com.fasterxml.jackson.core</groupId>
  114. <artifactId>jackson-annotations</artifactId>
  115. <version>2.9.5</version>
  116. </dependency>
  117. <dependency>
  118. <groupId>com.fasterxml.jackson.core</groupId>
  119. <artifactId>jackson-core</artifactId>
  120. <version>2.9.5</version>
  121. </dependency>
  122. </dependencies>

代码段一:导入坐标

  1. <?xml version="1.0" encoding="UTF-8"?>
  2. <web-app xmlns="http://xmlns.jcp.org/xml/ns/javaee"
  3. xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
  4. xsi:schemaLocation="http://xmlns.jcp.org/xml/ns/javaee http://xmlns.jcp.org/xml/ns/javaee/web-app_4_0.xsd"
  5. version="4.0">
  6. <servlet>
  7. <servlet-name>dispatcherServlet</servlet-name>
  8. <servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class>
  9. <init-param>
  10. <param-name>contextConfigLocation</param-name>
  11. <param-value>classpath:springmvc.xml</param-value>
  12. </init-param>
  13. <load-on-startup>1</load-on-startup>
  14. </servlet>
  15. <!--拦截所有客户请求,不包括静态资源-->
  16. <servlet-mapping>
  17. <servlet-name>dispatcherServlet</servlet-name>
  18. <url-pattern>/</url-pattern>
  19. </servlet-mapping>
  20. <!--绑定spring核心配置文件-->
  21. <context-param>
  22. <param-name>contextConfigLocation</param-name>
  23. <param-value>classpath:beans.xml</param-value>
  24. </context-param>
  25. <!--配置监听器-->
  26. <listener>
  27. <listener-class>org.springframework.web.context.ContextLoaderListener</listener-class>
  28. </listener>
  29. <!--注册一个编码过滤器-->
  30. <filter>
  31. <filter-name>characterEncodingFilter</filter-name>
  32. <filter-class>org.springframework.web.filter.CharacterEncodingFilter</filter-class>
  33. <init-param>
  34. <param-name>encoding</param-name>
  35. <param-value>utf-8</param-value>
  36. </init-param>
  37. </filter>
  38. <filter-mapping>
  39. <filter-name>characterEncodingFilter</filter-name>
  40. <!--拦截所有资源,包括所有资源-->
  41. <url-pattern>/*</url-pattern>
  42. </filter-mapping>
  43. </web-app>