基于java ssm springboot+mybatis酒庄内部管理系统设计和实现

基于Java SSM SpringBoot+Mybatis酒庄内部管理系统设计和实现

系统需求

  • 管理员登录管理
  • 酒庄员工管理
  • 酒庄原材料和产品管理
  • 酒庄生产线管理
  • 酒庄生产流程管理
  • 酒庄销售管理

技术选型

  • 后端:Spring、SpringMVC、Mybatis、SpringBoot、MySQL
  • 前端:Bootstrap、jQuery、Ajax

系统架构

使用MVC设计模式,系统分为View、Controller、Model三个部分,在Controller中调用Service层处理业务逻辑,Service层调用Dao层操作数据库。

数据库设计

  • 管理员表(id、name、password、phone)
  • 酒庄员工表(id、name、password、phone、hire_date、position、department_id、salary、status)
  • 酒庄原材料表(id、name、unit、cost、status)
  • 酒庄产品表(id、name、unit、cost、price、status)
  • 酒庄生产线表(id、name、status)
  • 酒庄生产流程表(id、line_id、product_id、start_time、end_time、status)
  • 酒庄销售表(id、product_id、sale_date、quantity、price、status)

系统实现

  1. 管理员登录管理

管理员需要在前端页面输入用户名和密码,如果正确,则跳转到后台管理页面。后端采用Spring Security进行登录验证。

示例:

@Configuration
@EnableWebSecurity
public class SecurityConfig extends WebSecurityConfigurerAdapter {

    @Autowired
    private UserDetailsService userDetailsService;

    @Override
    protected void configure(HttpSecurity http) throws Exception {
        http.authorizeRequests()
                .antMatchers("/login", "/css/**", "/js/**", "/images/**").permitAll() //放行login.html
                .anyRequest().authenticated();
        http.formLogin().loginPage("/login").successForwardUrl("/index").permitAll();//login.html登录成功后跳转到index.html
    }

    @Override
    protected void configure(AuthenticationManagerBuilder auth) throws Exception {
        auth.userDetailsService(userDetailsService);
    }

    @Bean
    public PasswordEncoder passwordEncoder() {
        return new BCryptPasswordEncoder();
    }
}
  1. 酒庄原材料和产品管理

酒庄原材料和产品分别对应“酒庄原材料表”和“酒庄产品表”,可以实现增加、删除、修改、查询等基本操作。

示例:

@Service
public class ProductService {

    @Autowired
    private ProductMapper productMapper;

    public void addProduct(Product product) {
        productMapper.addProduct(product);
    }

    public void deleteProductById(Integer id) {
        productMapper.deleteProductById(id);
    }

    public void updateProduct(Product product) {
        productMapper.updateProduct(product);
    }

    public Product getProductById(Integer id) {
        return productMapper.getProductById(id);
    }

    public List<Product> getAllProduct() {
        return productMapper.getAllProduct();
    }
}

@Controller
@RequestMapping("/product")
public class ProductController {
    @Autowired
    private ProductService productService;

    @RequestMapping(value = "/addProduct", method = RequestMethod.POST, produces = MediaType.APPLICATION_JSON_VALUE)
    public void addProduct(@RequestBody Product product) {
        productService.addProduct(product);
    }

    @RequestMapping(value = "/deleteProductById", method = RequestMethod.DELETE, produces = MediaType.APPLICATION_JSON_VALUE)
    public void deleteProductById(@RequestParam Integer id) {
        productService.deleteProductById(id);
    }

    @RequestMapping(value = "/updateProduct", method = RequestMethod.PUT, produces = MediaType.APPLICATION_JSON_VALUE)
    public void updateProduct(@RequestBody Product product) {
        productService.updateProduct(product);
    }

    @RequestMapping(value = "/getProductById", method = RequestMethod.GET, produces = MediaType.APPLICATION_JSON_VALUE)
    public Product getProductById(@RequestParam Integer id) {
        return productService.getProductById(id);
    }

    @RequestMapping(value = "/getAllProduct", method = RequestMethod.GET, produces = MediaType.APPLICATION_JSON_VALUE)
    public List<Product> getAllProduct() {
        return productService.getAllProduct();
    }
}

总结

以上就是基于Java SSM SpringBoot+Mybatis酒庄内部管理系统的设计和实现,通过三个部分的设计模式,让系统更加开放和快速运转。同时,我们使用Mybatis来对数据库进行操作,Spring进行横向整合,Spring MVC构建传输层,达到一个较为美满的系统架构。

本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:基于java ssm springboot+mybatis酒庄内部管理系统设计和实现 - Python技术站

(0)
上一篇 2023年5月19日
下一篇 2023年5月19日

相关文章

  • Java中Calendar时间操作常用方法详解

    Java中Calendar时间操作常用方法详解 Calendar是Java中时间操作的对象,可以进行常规的时间计算、设置、格式化等操作。本文将介绍几个常用的时间操作方法,包括日期获取、日期比较、日期格式化、日期计算四个部分。 日期获取 获取日期是使用Calendar的其中一个最基本的应用。可以使用下面的代码块获得当前日期: // 获取Calendar对象 C…

    Java 2023年5月20日
    00
  • 详解在java中进行日期时间比较的4种方法

    关于在Java中进行日期时间比较的4种方法,这里为您详细讲解。 1. 使用Date类进行日期时间比较 Java中常用的日期时间比较方法之一就是使用Date类。Date类的compareTo方法可以比较两个日期的先后顺序。具体使用方法如下: Date date1 = new Date(); Date date2 = new Date(); if(date1.c…

    Java 2023年5月20日
    00
  • java实现简易计算器功能

    Java实现简易计算器功能 在Java中实现简易计算器功能可以通过控制台输入运算式并得到结果的方式实现。主要步骤包括解析输入的运算式、进行计算并返回结果。 解析运算式 为了解析运算式,需要将输入的运算式字符串转换成可计算的形式。可以使用Java自带的eval()方法进行转换,例如: ScriptEngineManager manager = new Scri…

    Java 2023年5月23日
    00
  • java表单提交中文乱码的解决方法

    针对Java表单提交中文乱码的解决方法,我们可以从服务器和浏览器两个方面入手,以下是完整的攻略: 一、服务器端解决方案 1.1 设置请求编码与响应编码 在服务器端,我们可以通过设置请求编码和响应编码来解决Java表单提交中文乱码问题。 request.setCharacterEncoding("UTF-8"); response.setC…

    Java 2023年5月20日
    00
  • SpringBoot Tomcat启动实例代码详解

    下面就为您详细讲解SpringBoot Tomcat启动实例代码详解的完整攻略。 什么是SpringBoot? SpringBoot是一个用于开发和构建非常容易和快捷的标准Spring应用程序的框架。它采用了约定优于配置的原则,为否简化了应用的开发和部署,提供了一种更加开箱即用的方式。 SpringBoot中的Tomcat启动实例代码详解 在 SpringB…

    Java 2023年6月15日
    00
  • java中lambda表达式简单用例

    接下来我将为您详细讲解Java中Lambda表达式的简单用例攻略。 Lambda表达式简介 Lambda表达式是Java SE 8中新增的一个功能。它是一种匿名函数,它可以看做一种简化的、更紧凑的匿名内部类的写法。Lambda表达式的目的是使得Java语言更加紧凑、更易于读写。 Lambda表达式的语法 Lambda表达式的语法如下: (parameter1…

    Java 2023年5月26日
    00
  • java如何判断一个数是否是素数(质数)

    判断一个数是否是素数是一个常见的算法问题,下面是用java编写的实现方法: 1.判断算法 判断一个数x是否为素数的方法是判断x是否能被2~sqrt(x)范围内的整数整除。如果有一个数能够整除x,那么x就不是素数,否则x就是素数。 示例代码: public static boolean isPrime(int x) { if (x < 2) { // 小…

    Java 2023年5月26日
    00
  • java 异常被catch后 将会继续执行的操作

    Java 异常被 catch 后,程序会执行 catch 块中的代码,而不是直接终止程序的执行。在处理完异常后,程序可以选择恢复正常状态并继续执行,或者让异常传递到更高级别的异常处理程序进行处理。 下面是 Java 异常被 catch 后将会继续执行的操作的完整攻略: 恢复程序正常状态 当程序发生异常时,可以在 catch 块中编写代码来恢复程序的正常状态。…

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