一、设计流程
1.1 框架
- 商品上架,如果商品在仓库中存在,那么我们直接库存+1,如果商品不存在那么直接执行添加的功能
- 上架时间需要获取上架时, 系统的时 间
- 分页
- 分页功能:分页单位(几条数据为一-页)、起始索引位置、页面值(上一页、下一页、尾页、首页)、当前页。
、区间模糊查询、编辑、批量删除、登录注册
二、具体实施
2.1 项目搭建
2.1.1 数据库建表
如上建表,分别是表1、2、3.商品品牌表、类别表、商品表。
2.2.2 开发框架搭建
首先建立工程时一定要注意,meavn工程需要修改默认的meavn_work库,否则一次进行过多的资源定位,会导致资源定位导入的jar包丢失,需要重新下载导入。
- 添加webapplication。
- 导入坐标;代码段一。
-
4. 建立包结构
生成每个实体类对应的接口,为每个接口配置xml配置文件,添加依赖并指定全类名。2.2.3 ssm框架的配置文件
在核心配置文件web.xml中进行配置:代码附录二
配置前端总控制器dispatcherServlet
dispatcherServlet org.springframework.web.servlet.DispatcherServlet 绑定springmvc的核心配置文件
<param-name>contextConfigLocation</param-name>
<param-value>classpath:springmvc.xml</param-value>
设置启动级别
1 拦截所有的客户端请求
<servlet-name>dispatcherServlet</servlet-name>
<url-pattern>/</url-pattern>
绑定spring的核心配置文件
<param-name>contextConfigLocation</param-name>
<param-value>classpath:beans.xml</param-value>
配置一个监听器
org.springframework.web.context.ContextLoaderListener 注册一个编码过滤器
characterEncodingFilter org.springframework.web.filter.CharacterEncodingFilter encoding utf-8 拦截客户端所有的资源(包括静态资源)
<filter-name>characterEncodingFilter</filter-name>
<url-pattern>/*</url-pattern>
beans.xml文件配置;
开启扫描包
读取配置文件获取数据源信息
配置数据源对象
- 配置mybatis需要的工厂对象
- 配置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完成数据的回显,
附录
代码段一:导入坐标
<!--导入坐标-->
<dependencies>
<!--扫入spring相关依赖-->
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-core</artifactId>
<version>5.2.1.RELEASE</version>
</dependency>
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-web</artifactId>
<version>5.2.1.RELEASE</version>
</dependency>
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-oxm</artifactId>
<version>5.2.1.RELEASE</version>
</dependency>
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-tx</artifactId>
<version>5.2.1.RELEASE</version>
</dependency>
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-jdbc</artifactId>
<version>5.2.1.RELEASE</version>
</dependency>
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-webmvc</artifactId>
<version>5.2.1.RELEASE</version>
</dependency>
<!-- <dependency>
<groupId>javax.servlet</groupId>
<artifactId>servlet-api</artifactId>
<version>2.5</version>
</dependency>-->
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-aop</artifactId>
<version>5.2.1.RELEASE</version>
</dependency>
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-context</artifactId>
<version>5.2.1.RELEASE</version>
</dependency>
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-test</artifactId>
<version>5.2.1.RELEASE</version>
</dependency>
<!-- mybatis核心包 -->
<dependency>
<groupId>org.mybatis</groupId>
<artifactId>mybatis</artifactId>
<version>3.4.5</version>
</dependency>
<!-- mybatis/spring包 -->
<dependency>
<groupId>org.mybatis</groupId>
<artifactId>mybatis-spring</artifactId>
<version>1.3.2</version>
</dependency>
<!-- 导入java ee jar 包 -->
<dependency>
<groupId>javax</groupId>
<artifactId>javaee-api</artifactId>
<version>7.0</version>
</dependency>
<!-- 导入Mysql数据库链接jar包 -->
<dependency>
<groupId>mysql</groupId>
<artifactId>mysql-connector-java</artifactId>
<version>8.0.22</version>
</dependency>
<!--日志-->
<dependency>
<groupId>log4j</groupId>
<artifactId>log4j</artifactId>
<version>1.2.17</version>
</dependency>
<!--连接池-->
<dependency>
<groupId>commons-dbcp</groupId>
<artifactId>commons-dbcp</artifactId>
<version>1.2.2</version>
</dependency>
<!--连接池-->
<dependency>
<groupId>com.mchange</groupId>
<artifactId>c3p0</artifactId>
<version>0.9.5.5</version>
</dependency>
<dependency>
<groupId>jstl</groupId>
<artifactId>jstl</artifactId>
<version>1.2</version>
</dependency>
<dependency>
<groupId>com.alibaba</groupId>
<artifactId>fastjson</artifactId>
<version>1.2.47</version>
</dependency>
<!--支持mvc给前端返回json数据-->
<dependency>
<groupId>com.fasterxml.jackson.core</groupId>
<artifactId>jackson-databind</artifactId>
<version>2.9.5</version>
</dependency>
<dependency>
<groupId>com.fasterxml.jackson.core</groupId>
<artifactId>jackson-annotations</artifactId>
<version>2.9.5</version>
</dependency>
<dependency>
<groupId>com.fasterxml.jackson.core</groupId>
<artifactId>jackson-core</artifactId>
<version>2.9.5</version>
</dependency>
</dependencies>
代码段一:导入坐标
<?xml version="1.0" encoding="UTF-8"?>
<web-app xmlns="http://xmlns.jcp.org/xml/ns/javaee"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://xmlns.jcp.org/xml/ns/javaee http://xmlns.jcp.org/xml/ns/javaee/web-app_4_0.xsd"
version="4.0">
<servlet>
<servlet-name>dispatcherServlet</servlet-name>
<servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class>
<init-param>
<param-name>contextConfigLocation</param-name>
<param-value>classpath:springmvc.xml</param-value>
</init-param>
<load-on-startup>1</load-on-startup>
</servlet>
<!--拦截所有客户请求,不包括静态资源-->
<servlet-mapping>
<servlet-name>dispatcherServlet</servlet-name>
<url-pattern>/</url-pattern>
</servlet-mapping>
<!--绑定spring核心配置文件-->
<context-param>
<param-name>contextConfigLocation</param-name>
<param-value>classpath:beans.xml</param-value>
</context-param>
<!--配置监听器-->
<listener>
<listener-class>org.springframework.web.context.ContextLoaderListener</listener-class>
</listener>
<!--注册一个编码过滤器-->
<filter>
<filter-name>characterEncodingFilter</filter-name>
<filter-class>org.springframework.web.filter.CharacterEncodingFilter</filter-class>
<init-param>
<param-name>encoding</param-name>
<param-value>utf-8</param-value>
</init-param>
</filter>
<filter-mapping>
<filter-name>characterEncodingFilter</filter-name>
<!--拦截所有资源,包括所有资源-->
<url-pattern>/*</url-pattern>
</filter-mapping>
</web-app>