SSM整合改造超市订单管理系统

Posted subeiLY

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了SSM整合改造超市订单管理系统相关的知识,希望对你有一定的参考价值。

SSM整合改造超市订单管理系统

环境要求:

  • IDEA 2020.2
  • mysql 5.7.19
  • Tomcat 9.0
  • Maven 3.6
  • JDK 1.9

技术要求:

  • 需要熟练掌握MySQL数据库,Spring,JavaWeb及MyBatis知识,简单的前端知识;

整合思路?

  • Spring MVC+Spring+ Mybatis框架,核心框架是 Spring,通过 spring ioc\\di和aop
  • 管理 mybatis对象、 spring mvc对象;
  • 管理 controller依赖于service; service依赖于dao;dao依赖于 mybatis。

整合步骤如下,MySQL及素材文件建议参考前文:Servlet版

1.搭建框架,导入配置文件

  • 新建一个maven项目,添加web的支持。

  • 导入项目中需要的jar包——在pom.xml中,以maven方式导入;
<?xml version="1.0" encoding="UTF-8"?>
<project xmlns="http://maven.apache.org/POM/4.0.0"
         xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
         xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
    <modelVersion>4.0.0</modelVersion>

    <groupId>org.example</groupId>
    <artifactId>smbms</artifactId>
    <version>1.0-SNAPSHOT</version>

    <dependencies>
        <dependency>
            <groupId>mysql</groupId>
            <artifactId>mysql-connector-java</artifactId>
            <version>5.1.47</version>
        </dependency>
        <dependency>
            <groupId>org.mybatis</groupId>
            <artifactId>mybatis</artifactId>
            <version>3.5.7</version>
        </dependency>
        <dependency>
            <groupId>org.projectlombok</groupId>
            <artifactId>lombok</artifactId>
            <version>1.18.4</version>
        </dependency>
        <dependency>
            <groupId>junit</groupId>
            <artifactId>junit</artifactId>
            <version>4.13</version>
            <scope>test</scope>
        </dependency>
        <dependency>
            <groupId>org.mybatis</groupId>
            <artifactId>mybatis-spring</artifactId>
            <version>2.0.6</version>
        </dependency>
        <dependency>
            <groupId>log4j</groupId>
            <artifactId>log4j</artifactId>
            <version>1.2.17</version>
        </dependency>
        <dependency>
            <groupId>org.springframework</groupId>
            <artifactId>spring-webmvc</artifactId>
            <version>5.3.9</version>
        </dependency>
        <dependency>
            <groupId>org.springframework</groupId>
            <artifactId>spring-jdbc</artifactId>
            <version>5.3.9</version>
        </dependency>
        <dependency>
            <groupId>org.aspectj</groupId>
            <artifactId>aspectjweaver</artifactId>
            <version>1.9.6</version>
        </dependency>
        <dependency>
            <groupId>javax.servlet</groupId>
            <artifactId>servlet-api</artifactId>
            <version>2.5</version>
        </dependency>
        <dependency>
            <groupId>jstl</groupId>
            <artifactId>jstl</artifactId>
            <version>1.2</version>
        </dependency>
        <dependency>
            <groupId>javax.servlet.jsp</groupId>
            <artifactId>jsp-api</artifactId>
            <version>2.2</version>
        </dependency>
        <!--文件上传-->
        <dependency>
            <groupId>commons-fileupload</groupId>
            <artifactId>commons-fileupload</artifactId>
            <version>1.3.3</version>
        </dependency>
        <!--servlet-api导入高版本的-->
        <dependency>
            <groupId>javax.servlet</groupId>
            <artifactId>javax.servlet-api</artifactId>
            <version>4.0.1</version>
        </dependency>
        <dependency>
            <groupId>com.mchange</groupId>
            <artifactId>c3p0</artifactId>
            <version>0.9.5.2</version>
        </dependency>
        <dependency>
            <groupId>com.fasterxml.jackson.core</groupId>
            <artifactId>jackson-databind</artifactId>
            <version>2.12.3</version>
        </dependency>
    </dependencies>

    <!--防止IDEA默认1.5的JDK-->
    <properties>
        <maven.compiler.source>1.9</maven.compiler.source>
        <maven.compiler.target>1.9</maven.compiler.target>
    </properties>

    <!-- 如果不添加此节点mybatis的mapper.xml文件都会被漏掉。 -->
    <build>
        <resources>
            <resource>
                <directory>src/main/java</directory>
                <includes>
                    <include>**/*.properties</include>
                    <include>**/*.xml</include>
                </includes>
                <filtering>false</filtering>
            </resource>
        </resources>
    </build>

</project>
  • 导入相关前端素材;
  1. 链接:https://pan.baidu.com/s/1d0UT_pMhft7HOk5T1hvLFw
  2. 提取码:fqhd

2.Mybatis层

  1. 创建项目包结构

    • pojo/entity——实体类;
    • dao/mapper——具体数据库操作层(增删改查);
    • service——业务层;
    • test/view——表示层 / 测试层;
    • utils——工具类;
    • filter——过滤层,放置过滤器;
    • servlet/controller——控制层,调用业务层代码;
  • 添加配置文件

  1. 数据库配置文件——database.properties
jdbc.driver=com.mysql.jdbc.Driver
# 如果使用的是MySQL8.0+,增加一个时区的配置。
jdbc.url=jdbc:mysql://localhost:3306/smbms?useSSL=true&useUnicode=true&characterEncoding=utf8
jdbc.username=root
jdbc.password=root
  1. 编写MyBatis的核心配置文件——mybatis-config.xml
<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE configuration
        PUBLIC "-//mybatis.org//DTD Config 3.0//EN"
        "http://mybatis.org/dtd/mybatis-3-config.dtd">
<configuration>

    <settings>
        <!--日志输出-->
        <setting name="logImpl" value="STDOUT_LOGGING"/>
        <!--自动驼峰映射-->
        <setting name="mapUnderscoreToCamelCase" value="true"/>
    </settings>

    <mappers>
        <mapper class="com.github.mapper.ProviderMapper"/>
        <mapper class="com.github.mapper.BillMapper"/>
        <mapper class="com.github.mapper.RoleMapper"/>
        <mapper class="com.github.mapper.UserMapper"/>
    </mappers>
</configuration>
  1. 编写数据库对应的实体类 com.github.pojo.User,使用lombok插件!
package com.github.pojo;

import lombok.AllArgsConstructor;
import lombok.Data;
import lombok.NoArgsConstructor;

import java.util.Date;

@Data
@AllArgsConstructor
@NoArgsConstructor
public class User {
    private long id; // 主键ID
    private String userCode;    // 用户编码
    private String userName;    // 用户名称
    private String userPassword;    // 用户密码
    private int gender; // 性别
    private Date birthday;  // 出生日期
    private String phone;   // 手机
    private String address; // 地址
    private long userRole;   // 用户角色
    private long createdBy;  // 创建者
    private Date creationDate;  // 创建时间
    private long modifyBy;   // 更新者
    private Date modifyDate;    // 更新时间

    private int age; //年龄
    private String userRoleName; //用户角色名称

    public int getAge() {
        Date date = new Date();
        int age = date.getYear()-birthday.getYear();
        return age;
    }

    public String getUserRoleName(){
        if (userRole==1){
            return "系统管理员";
        }else if (userRole==2){
            return "经理";
        }else if (userRole==3){
            return "普通员工";
        }
        return "";
    }
}
package com.github.pojo;

import lombok.AllArgsConstructor;
import lombok.Data;
import lombok.NoArgsConstructor;

import java.sql.Date;

@Data
@NoArgsConstructor
@AllArgsConstructor
public class Role {
    // ID
    private long id;
    // 角色编码
    private String roleCode;
    // 角色名称
    private String roleName;
    // 创建者
    private long createdBy;
    // 创建时间
    private Date creationDate;
    // 更新者
    private long modifyBy;
    // 更新时间
    private Date modifyDate;
}
package com.github.pojo;

import lombok.AllArgsConstructor;
import lombok.Data;
import lombok.NoArgsConstructor;

import java.sql.Date;

@Data
@AllArgsConstructor
@NoArgsConstructor
public class Provider {
    private long id;
    // 供应商编码
    private String proCode;
    // 供应商名称
    private String proName;
    // 供应商描述
    private String proDesc;
    // 供应商联系人
    private String proContact;
    // 供应商电话
    private String proPhone;
    // 供应商地址
    private String proAddress;
    // 供应商传真
    private String proFax;
    // 创建者
    private long createdBy;
    // 创建时间
    private Date creationDate;
    // 更新时间
    private Date modifyDate;
    // 更新者
    private long modifyBy;
}
package com.github.pojo;

import lombok.AllArgsConstructor;
import lombok.Data;
import lombok.NoArgsConstructor;

import java.math.BigDecimal;
import java.sql.Date;

@Data
@AllArgsConstructor
@NoArgsConstructor
public class Bill {
    private long id;
    // 账单编码
    private String billCode;
    // 商品名称
    private String productName;
    // 商品描述
    private String productDesc;
    // 商品单位
    private String productUnit;
    // 商品数量
    private BigDecimal productCount;
    // 总金额
    private BigDecimal totalPrice;
    // 是否支付
    private int isPayment;
    // 创建者
    private long createdBy;
    // 创建时间
    private Date creationDate;
    // 更新者
    private long modifyBy;
    // 更新时间
    private Date modifyDate;
    // 供应商ID
    private long providerId;
    // 提供者的姓名
    private String providerName; 
}
  1. 编写Dao层的 Mapper接口!
    • UserMapper.java
package com.github.mapper;

import com.github.pojo.User;
import org.apache.ibatis.annotations.Param;

import java.util.List;

public interface UserMapper {
    public User findById(@Param("id") long id);

    public User findByNameAndPassword(@Param("userName") String userName,@Param("password") String password);

    public int updatePasswordById(@Param("id") long id,@Param("password") String password);

    public int findUserCountByRoleIdAndUsername(@Param("id") long id,@Param("username") String username);

    public List<User> findUserByRoleIdAndUsernameAndPageLimit(@Param("id") long id, @Param("username") String username, @Param("startIndex") int startIndex, @Param("pageSize") int pageSize);

    public int insertUser(User user);

    public List<User> findAll();

    public int deleteById(@Param("id") long id);

    public int updateUser(User user);
}
  • RoleMapper.java
package com.github.mapper;

import com.github.pojo.Role;
import org.apache.ibatis.annotations.Param;

import java.util.List;

public interface RoleMapper {
    public Role findById(@Param("id") long id);
    public ListIDEA+Java+SSM+JSP+Mysql实现超市订单系统

项目一:ssm超市订单管理系统

java+jsp基于ssm的校园OTO超市系统

SSM第二课 超市订单管理平台--用户管理功能

JavaWeb SSM SpringBoot+Redis网上水果超市商城(源码+论文可运行《精品毕设》)主要实现登录注册商品分类浏览订单评论收藏购物车个人信息地址管理后台管理

Java项目:校园超市管理系统(java+SSM+Mysql+Maven+Bootstrap)