用springboot+mybatis+mysql+thymeleaf写的简易商品管理系统(系统地址:http://120.55.192.105:8080/含源码)

简介

简易的商品管理系统,主要用springboot + mybatis +thymeleaf

注意 链接的mysql数据库是8.0版本 如果自己运行 可能会遇到mysql数据库版本问题造成的影响

此系统 主要是看b战狂神说 springboot实战模仿写的

前端的页面也是搜的模板,只是简单的商品的增删改查。

如果发现错误是啥 谢谢联系我

此系统已被推到 服务器 可以在线访问 地址是:http://120.55.192.105:8080/
账号:admin@123.com
密码: 123456

源码和访问系统

点击获取
有帮助的进入点个星星

系统地址:http://120.55.192.105:8080/
账号:admin@123.com
密码: 123456

页面样式

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

在这里插入图片描述

页面及数据库表结构

由于本系统并不复杂,且库存管理就只有一个展示功能,所以表之间的级联关系几乎没有。此下为其中两个表结构

在这里插入图片描述

各模块功能及源码解析

登录功能以及拦截器功能

以下所有代码都只是截取
登录功能,主要是controller文件夹下的loginController.java文件和Mapper文件夹下的UserMapper.java文件。最后是操作数据库的mybatis.mapper下面的userMapper.xml文件

loginController.java

@Controller
/**@Controller 是标记在类LoginController上面的,所以类MyController 就是一个SpringMVC Controller 对象了,然后使用@RequestMapping(“/user/login”) 标记在Controller 方法上,表示当请求/user/login 的时候访问的是LoginController的queryUserByName方法,
这其中的queryUserByName方法就是对在视图层用户输入的username与数据库中的比较,如果有且密码正确,则登录成功
*/

public class LoginController {
    @Autowired
    private UserMapper userMapper;

    @RequestMapping("/user/login")
    public String queryUserByName(
            @RequestParam("username") String username,
                        @RequestParam("password") String password,
                        Model model, HttpSession session
    ){

        if(password.equals(user.getPassword())){
            session.setAttribute("loginUser",username);
            return "index";
        }else{
            model.addAttribute("msg","用户名或者密码错误");
            return "login";
        }

    }



}

UserMapper.java //进行一些业务方法,比如查找用户表

@Mapper
@Repository
public interface UserMapper {
    List<User> queryUserList();

//    User queryUserById(int id);

    User queryUserByName(String username);

//    int addUser(User user);

//    int updateUser(User user);

//    int delete(int id);


}

UserMapper.xml 用于对数据库的操作,注意这是mybatis的简单语法

<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE mapper
        PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
        "http://mybatis.org/dtd/mybatis-3-mapper.dtd">

<mapper namespace="com.example.springbootweb.mapper.UserMapper">

    <select id="queryUserList" resultType="User">
       select * from manager;
    </select>

    <select id="queryUserByName" resultType="User">
       select * from manager where username=#{username};
    </select>

</mapper>

登录拦截功能:主要是用于对没用登录的用户是没有权限访问库存管理和商品管理页面。主要处理页面是在config文件夹下LoginHandlerInterceptor文件,和MyMvcconfig文件的addInterceptor方法;

LoginHandlerInterceptor.java

public class LoginHandlerInterceptor  implements HandlerInterceptor {
    @Override
    public boolean preHandle(HttpServletRequest request, HttpServletResponse response, Object handler) throws Exception {
//        登录成功之后,应该有用户的session
        Object loginUser = request.getSession().getAttribute("loginUser");
        System.out.println(loginUser);
        if(loginUser == null){
            request.setAttribute("msg","请先登录才可以进行下列操作 ");
            request.getRequestDispatcher("/").forward(request,response);
            return false;
        }else {
            return  true;
        }


    }
}

MyMvcconfig.java

  public void addInterceptors(InterceptorRegistry registry) {
        registry.addInterceptor(new LoginHandlerInterceptor())
                .addPathPatterns("/**").excludePathPatterns("/","/login.html","/user/login");
    }

//上面把除开login.html","/user/login"登录界面的其他界面都拦截了

商品管理功能和价格分析功能

商品增删改查WaresController.javaWaresMapper.java,waresMapper.xml和
Pojo实体类文件的Wares.java中可完成此功能:

/** @Data
@AllArgsConstructor
@NoArgsConstructor
这几个注解是引用了lombok的简写,可以直接引入实体类的get,set方法,和有无参数的构造方法
*/

Wares.java

@Data
@AllArgsConstructor
@NoArgsConstructor
public class Wares {
    private Integer id;
    private String name;
    private Integer price;
    private String type;

}

WaresController.java

@Controller
public class WaresController {
    @Autowired
    private WaresMappper waresMappper;



    @RequestMapping("/waresMap")
    public String list(Model model){

        List<Wares> waresMap = waresMappper.queryWaresList();
        model.addAttribute("waresMap",waresMap);
        System.out.println(waresMap);
        return "responsive_table";

    }

    @PostMapping("/wares")
    public  String addWares(Wares wares){
        waresMappper.addWares(wares);
        return "redirect:waresMap";
    }


//    到达修改页面
    @GetMapping("/{id}")
    public String toModify(@PathVariable("id")Integer id,Model model){
        Wares wares = waresMappper.queryWaresById(id);
//        返回商品信息
        model.addAttribute("wares",wares);

        return "modify";
    }
//
    商品的信息的修改
    @PostMapping("/modify")
    public String modify(Wares wares){
        waresMappper.updateWares(wares);
        return "redirect:waresMap";

    }

    @GetMapping("/del{id}")
    public String del(@PathVariable("id")Integer id){
        waresMappper.delete(id);
        return "redirect:waresMap";
    }

}

WaresMapper.xml //一系列操作数据库的方法

@Mapper
@Repository
public interface WaresMappper {

    List<Wares> queryWaresList();

    Wares queryWaresById(int id);

    List<Wares> queryWaresByType(String type);

    Wares queryWaresByName(String name);

    Object addWares(Wares wares);

    Object updateWares(Wares wares);

    Object delete(int id);

}

waresMapper.xml //操作数据库

将后端请求到的同一类的商品的价格用javascript处理,再用echarts渲染

<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE mapper
        PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
        "http://mybatis.org/dtd/mybatis-3-mapper.dtd">

<mapper namespace="com.example.springbootweb.mapper.WaresMappper">

    <select id="queryWaresList" resultType="Wares">
       select * from ware;
    </select>

    <select id="queryWaresById" resultType="Wares">
        select * from ware where id=#{id}
    </select>

    <select id="queryWaresByType" resultType="Wares">
        select * from ware where type=#{type}
    </select>

    <select id="queryWaresByName" resultType="Wares">
       select * from ware where username=#{username};
    </select>

    <select id="addWares" parameterType="Wares">
        insert into ware (id ,name,price,type) values (#{id},#{name},#{price},#{type})
    </select>

    <select id="updateWares" parameterType="Wares">
        update ware set name=#{name},price=#{price},type=#{type} where id=#{id}
    </select>

    <select id="delete" parameterType="int">
        delete  from ware where id=#{id}
    </select>
</mapper>

库存管理功能

库存管理和商品管理基本上差不多,处理逻辑相同的,所以这部分内容我并没有在数据库建表,直接在自己用Map建立假数据。代码基本上是在Dao文件下的goodsdao.java和goodsController.java文件。

goodsdao.java

package com.example.springbootweb.Dao;

import com.example.springbootweb.pojo.Department;
import com.example.springbootweb.pojo.Goods;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Repository;

import java.util.Collection;
import java.util.HashMap;
import java.util.Map;

//员工dao
@Repository
public class GoodsDao {
//    模拟数据库中的操作
    private  static Map<Integer, Goods> goodsArr;
//    员工有所属的部门

    static{
        goodsArr = new HashMap<Integer, Goods>();//
        goodsArr.put(1001,new Goods(1,"apple",20,"fruit",1000,20,"熊梓淇"));
        goodsArr.put(1002,new Goods(2,"banana",10,"fruit",200,10,"熊梓淇"));
        goodsArr.put(1003,new Goods(3,"computer",5000,"e-goods",12000,365,"刘辉"));
        goodsArr.put(1004,new Goods(4,"phone",2000,"e-goods",10300,365,"刘辉"));
        goodsArr.put(1005,new Goods(5,"keyboard",200,"e-goods",10400,500,"刘辉"));

    }
//    主键自增
    private static  Integer initId = 1006;

//    增加一个员工
    public void  save(Goods goods){
        if(goods.getId()==null){
            goods.setId(initId++);
        }
        goodsArr.put(goods.getId(),goods);
    }
//    查询全goodsArr
    public Collection<Goods> getAll(){
        return goodsArr.values();
    }

//    通过id查询员工
    public Goods getEmployeeById(Integer id){
        return goodsArr.get(id);
    }

//    删除员工通过id
    public  void delete(Integer id){
        goodsArr.remove(id);
    }

}

GoodsController.java

@Controller
public class GoodsController {

    @Autowired
    GoodsDao goodsDao;

/** 这里由于实在是业务逻辑处理和商品管理完全相同 所以只有一个查询方法*/
    @RequestMapping("/goodsArr")
    public  String list(Model model){
        Collection<Goods> goodsArr = goodsDao.getAll();
        model.addAttribute("goodsArr",goodsArr);
        System.out.println(goodsArr);
        return "basic_table";
    }


}
  • 3
    点赞
  • 44
    收藏
    觉得还不错? 一键收藏
  • 14
    评论
课程介绍 仓库管理系统主要功能有采购入库,采购退货,销售出库,销售退货,仓库盘点,库存报表,Excel导入导出,按钮级权限控制及系统日志等功能,系统采用SpringBoot ,mybatis,easyui,ajax,mssql数据库等技术开发。提供所有源代码下载,系统功能完善,可直接运行。开发环境项目开发语言:SpringBoot ,mybatis,easyui,ajax,mssql数据库项目运行环境:jdk1.8及以上版本,tomcat8.0及以上版本,sql server2005及以上版本项目开发工具: 本项目开发工具是Intellij Idea课程目标掌握SpringBoot等技术,熟悉仓库管理系统主要功能,采购入库,采购退货,销售出库,销售退货,仓库盘点,系统报表,权限控制及日志等50多门JAVA系列全套课程,包括大一新生到大四毕业的所有JAVA系列技术专业课程,项目实战,商业项目等;基础课程:JAVA初级工程师: 1、计算机基础 2、HTML语言基础 3、C语言从入门到精通+贪吃蛇游戏 4、贪吃蛇游戏 5、SQL SERVER数据库基础 6、JAVA从入门到精通+推箱子游戏+QQ即时通讯软件 7、推箱子游戏; 8、仿QQ即时通讯软件;JAVA中级工程师: 9、SQLSERVER数据库高级 10、SQLSERVER从入门到精通(基础+高级) 11、JavaScript从入门到精通, 12、JSP从入门到精通+点餐系统, 13、JSP从入门到精通+在线视频学习教育平台, 14、JSP从入门到精通+大型电商平台; 15、XML从入门到精通, 16、数据结构(JAVA版),JAVA高级工程师: 17、Oracle数据库从入门到精通, 18、ajax+jquery从入门到精通, 19、EasyUI从入门到精通,SSH框架: 20、Struts2从入门到精通课程, 21、Hibernate从入门到精通课程, 22、Spring从入门到精通课程; 23、Echarts从入门到精通, 24、Excel基于POI的导入导出工作流框架: 25、Activiti流程框架从入门到精通 26、JBPM流程框架从入门到精通SSM框架: 27、MyBatis从入门到精通 28、Spring MVC从入门到精通 29、Spring Boot入门到精通 30、Spring Cloud入门到精通面试题: 31、职业生涯规划及面试题集锦商业项目: 32、微信公众号在线支付系统 33、微信生活缴费在线支付系统 34、支付宝生活缴费在线支付系统 35、在线考试系统 36、人脸识别智能考试系统(人工智能AI) 37、仓库管理及质量追溯系统 38、房屋出租管理系统APP(身份证识别) 39、手机订餐管理系统, 40、CRM客户关系管理系统 41、大型房地产CRM销售管理系统 42、CMPP2,CMPP3移动网关系统 43、仓库管理系统SpringBoot) 44、影院在线售票系统(仿猫眼电影)人工智能: 45、人脸识别在线考试系统 46、人脸识别系统项目实战 47、车牌识别停车场管理系统 48、身份证识别系统项目实战 49、营业执照识别系统项目实战 50、名片识别管理系统
学籍管理系统是一个用于管理学生的基本信息、课程信息和成绩信息的系统。基于Vue3、Element Plus、Spring Boot、MyBatis、JPA和MySQL的学籍管理系统具有以下特点和功能。 1. 前端界面使用Vue3和Element Plus框架,实现了美观、简洁的用户界面,提供了良好的用户体验。 2. 后端使用Spring Boot作为应用框架,简化了系统的搭建和开发。同时,基于MyBatis和JPA技术实现与数据库的交互,提供高性能和灵活性。 3. 数据库使用MySQL,存储学生的基本信息、课程信息和成绩信息,保证了数据的持久性和安全性。 4. 学籍管理系统提供了学生信息的录入、查询和修改功能。管理员可以通过界面录入学生的基本信息,包括姓名、学号、性别、年龄等。同时,还可以查询和修改学生的信息,确保信息的准确性。 5. 系统还提供了课程信息的管理功能。管理员可以录入课程的名称、学分、教师等信息,方便学生选课和教师进行课程管理。 6. 学籍管理系统还包括成绩管理功能。管理员可以录入学生的成绩,系统会自动计算学生的平均成绩和绩点,并提供成绩查询功能,方便学生和教师查看学生成绩。 7. 系统还提供了权限管理功能,确保只有授权用户可以进行相关操作,保证了数据的安全性。 综上所述,基于Vue3、Element Plus、Spring Boot、MyBatis、JPA和MySQL的学籍管理系统具有方便、快捷、安全、准确的特点,能够有效管理学生的基本信息、课程信息和成绩信息。在教育领域的学籍管理中具有重要的应用价值。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 14
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值