• 基于springboot+layui的前后端分离高校教材管理系统源码


    教材管理系统

    开发工具:idea

    数据库:MYSQL

    数据库连接工具: navcat

    模式:前后端分离

    后端开发技术:SpringBoot  springMVC Mybatis

    前端开发技术: LayUI  Html

    前端运行环境:idea 或 hbuildx  或VScode可以单独运行。

     项目具体功能请看视频:

    【java毕业设计】基于springboot+mybatis+layui的前后端分离高校教材管理系统

     

     计算机技术和网络信息技术的发展和普及,据调查,到目前为止,我国还有许多高校,甚至一些重点院校的教材管理工 作仍为手工管理方式,这种管理方式不但与现实高校教材管理业务的需求不相适 应,而且也与高校信息化建设的发展趋势不相适应。因此,高校教材管理人员目 前迫切需要一套方便、高效的计算机化的管理信息系统来代替他们繁重、低效的传统手工管理方式,并最终实现教材管理的全面自动化。

     

     

     

     

     pom.xml:

    1. <?xml version="1.0" encoding="UTF-8"?>
    2. <project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
    3. xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 https://maven.apache.org/xsd/maven-4.0.0.xsd">
    4. <modelVersion>4.0.0</modelVersion>
    5. <parent>
    6. <groupId>org.springframework.boot</groupId>
    7. <artifactId>spring-boot-starter-parent</artifactId>
    8. <version>2.2.6.RELEASE</version>
    9. <relativePath/> <!-- lookup parent from repository -->
    10. </parent>
    11. <groupId>com.gydx</groupId>
    12. <artifactId>book</artifactId>
    13. <version>0.0.1-SNAPSHOT</version>
    14. <name>bookManager</name>
    15. <description>Demo project for Spring Boot qq2118119173</description>
    16. <properties>
    17. <shiro.version>1.3.1</shiro.version>
    18. <java.version>8</java.version>
    19. </properties>
    20. <dependencies>
    21. <dependency>
    22. <groupId>org.springframework.boot</groupId>
    23. <artifactId>spring-boot-starter-jdbc</artifactId>
    24. </dependency>
    25. <dependency>
    26. <groupId>org.springframework.boot</groupId>
    27. <artifactId>spring-boot-starter-web</artifactId>
    28. </dependency>
    29. <dependency>
    30. <groupId>mysql</groupId>
    31. <artifactId>mysql-connector-java</artifactId>
    32. <scope>runtime</scope>
    33. </dependency>
    34. <dependency>
    35. <groupId>org.springframework.boot</groupId>
    36. <artifactId>spring-boot-configuration-processor</artifactId>
    37. <optional>true</optional>
    38. </dependency>
    39. <dependency>
    40. <groupId>org.springframework.boot</groupId>
    41. <artifactId>spring-boot-starter-test</artifactId>
    42. <scope>test</scope>
    43. <exclusions>
    44. <exclusion>
    45. <groupId>org.junit.vintage</groupId>
    46. <artifactId>junit-vintage-engine</artifactId>
    47. </exclusion>
    48. </exclusions>
    49. </dependency>
    50. <dependency>
    51. <groupId>org.springframework.boot</groupId>
    52. <artifactId>spring-boot-starter-mail</artifactId>
    53. </dependency>
    54. <dependency>
    55. <groupId>org.springframework.boot</groupId>
    56. <artifactId>spring-boot-starter-thymeleaf</artifactId>
    57. </dependency>
    58. <dependency>
    59. <groupId>org.mybatis</groupId>
    60. <artifactId>mybatis</artifactId>
    61. <version>3.4.6</version>
    62. </dependency>
    63. <dependency>
    64. <groupId>org.mybatis.spring.boot</groupId>
    65. <artifactId>mybatis-spring-boot-starter</artifactId>
    66. <version>1.3.2</version>
    67. </dependency>
    68. <dependency>
    69. <groupId>tk.mybatis</groupId>
    70. <artifactId>mapper</artifactId>
    71. <version>4.1.5</version>
    72. </dependency>
    73. <dependency>
    74. <groupId>com.alibaba</groupId>
    75. <artifactId>fastjson</artifactId>
    76. <version>1.2.62</version>
    77. </dependency>
    78. <dependency>
    79. <groupId>com.alibaba</groupId>
    80. <artifactId>druid-spring-boot-starter</artifactId>
    81. <version>1.1.20</version>
    82. </dependency>
    83. <dependency>
    84. <groupId>org.apache.shiro</groupId>
    85. <artifactId>shiro-spring</artifactId>
    86. <version>${shiro.version}</version>
    87. </dependency>
    88. <dependency>
    89. <groupId>org.apache.shiro</groupId>
    90. <artifactId>shiro-all</artifactId>
    91. <version>${shiro.version}</version>
    92. </dependency>
    93. <dependency>
    94. <groupId>org.springframework.session</groupId>
    95. <artifactId>spring-session</artifactId>
    96. <version>1.3.5.RELEASE</version>
    97. </dependency>
    98. </dependencies>
    99. <build>
    100. <plugins>
    101. <plugin>
    102. <groupId>org.springframework.boot</groupId>
    103. <artifactId>spring-boot-maven-plugin</artifactId>
    104. </plugin>
    105. </plugins>
    106. </build>
    107. </project>

     

     

    1. package com.gydx.bookManager.controller;
    2. import com.alibaba.fastjson.JSONObject;
    3. import com.gydx.bookManager.pojo.BookPageInfoPojo;
    4. import com.gydx.bookManager.entity.Book;
    5. import com.gydx.bookManager.pojo.ReceiveData;
    6. import com.gydx.bookManager.service.BookService;
    7. import com.gydx.bookManager.util.ImageUtil;
    8. import org.slf4j.Logger;
    9. import org.slf4j.LoggerFactory;
    10. import org.springframework.beans.factory.annotation.Autowired;
    11. import org.springframework.stereotype.Controller;
    12. import org.springframework.web.bind.annotation.*;
    13. import java.util.List;
    14. @CrossOrigin
    15. @RestController
    16. public class BookInfoController {
    17. @Autowired
    18. private BookService bookService;
    19. @RequestMapping("/getBookList")
    20. public String getBookList(Integer page, Integer limit, String name, String author, String publisher) {
    21. BookPageInfoPojo bookPageInfoPojo = new BookPageInfoPojo();
    22. bookPageInfoPojo.setPage(page);
    23. bookPageInfoPojo.setLimit(limit);
    24. bookPageInfoPojo.setAuthor(author);
    25. bookPageInfoPojo.setName(name);
    26. bookPageInfoPojo.setPublisher(publisher);
    27. JSONObject jsonObject = new JSONObject();
    28. List<Book> books1, books2;
    29. if (bookPageInfoPojo.getName().equals("") && bookPageInfoPojo.getAuthor().equals("") && bookPageInfoPojo.getPublisher().equals("")) {
    30. books1 = bookService.getBookList(bookPageInfoPojo.getPage(), bookPageInfoPojo.getLimit());
    31. books2 = bookService.getAllBooks();
    32. } else {
    33. books1 = bookService.getBookListByCondition(bookPageInfoPojo);
    34. books2 = bookService.getAllBooksByCondition(bookPageInfoPojo);
    35. }
    36. jsonObject.put("code", 0);
    37. jsonObject.put("msg", "查询成功");
    38. jsonObject.put("count", books2.size());
    39. jsonObject.put("data", books1);
    40. return jsonObject.toJSONString();
    41. }
    42. @RequestMapping("/deleteOneBookById")
    43. public String deleteOneBookById(@RequestBody Book book) {
    44. JSONObject jsonObject = new JSONObject();
    45. bookService.deleteOneBookById(book.getId());
    46. jsonObject.put("msg", "删除成功!");
    47. return jsonObject.toJSONString();
    48. }
    49. @RequestMapping("/updateBookInfo")
    50. public String updateBookInfo(@RequestBody Book book) {
    51. JSONObject jsonObject = new JSONObject();
    52. bookService.updateBookInfo(book);
    53. jsonObject.put("msg", "更新成功!");
    54. return jsonObject.toJSONString();
    55. }
    56. @RequestMapping("/deleteBooks")
    57. public String deleteBooks(@RequestBody List books) {
    58. JSONObject jsonObject = new JSONObject();
    59. bookService.deleteBooks(books);
    60. jsonObject.put("msg", "已删除!");
    61. return jsonObject.toJSONString();
    62. }
    63. @RequestMapping("/addBook")
    64. public String addBook(@RequestBody Book book) {
    65. JSONObject jsonObject = new JSONObject();
    66. int i = bookService.addBook(book);
    67. if (i == 0) {
    68. jsonObject.put("msg", "该教材已存在!");
    69. return jsonObject.toJSONString();
    70. }
    71. jsonObject.put("msg", "添加成功");
    72. return jsonObject.toJSONString();
    73. }
    74. @RequestMapping("/getBookListByMajor")
    75. public String getBookListByMajor(@RequestBody ReceiveData receiveData) {
    76. JSONObject jsonObject = new JSONObject();
    77. List<Book> books = bookService.getBookListByMajor(receiveData.getMajorName());
    78. jsonObject.put("msg", "查询成功");
    79. jsonObject.put("data", books);
    80. return jsonObject.toJSONString();
    81. }
    82. @RequestMapping("/getAllBookList")
    83. public String getAllBookList() {
    84. JSONObject jsonObject = new JSONObject();
    85. List<Book> books = bookService.getAllBookList();
    86. jsonObject.put("msg", "查询成功");
    87. jsonObject.put("data", books);
    88. return jsonObject.toJSONString();
    89. }
    90. @RequestMapping("/getAllDBookName")
    91. public String getAllDBookName() {
    92. JSONObject jsonObject = new JSONObject();
    93. List<Book> books = bookService.getAllDBookName();
    94. jsonObject.put("msg", "查询成功");
    95. jsonObject.put("data", books);
    96. return jsonObject.toJSONString();
    97. }
    98. @RequestMapping("/getAllDBookAuthor")
    99. public String getAllDBookAuthor() {
    100. JSONObject jsonObject = new JSONObject();
    101. List<Book> books = bookService.getAllDBookAuthor();
    102. jsonObject.put("msg", "查询成功");
    103. jsonObject.put("data", books);
    104. return jsonObject.toJSONString();
    105. }
    106. @RequestMapping("/getAllDBookAuthorByBookName")
    107. public String getAllDBookAuthorByBookName(@RequestBody ReceiveData receiveData) {
    108. JSONObject jsonObject = new JSONObject();
    109. List<Book> books = bookService.getAllDBookAuthorByBookName(receiveData.getBookName());
    110. jsonObject.put("msg", "查询成功");
    111. jsonObject.put("data", books);
    112. return jsonObject.toJSONString();
    113. }
    114. @RequestMapping("/getAllDBookPublishTimeByBookAuthor")
    115. public String getAllDBookPublishTimeByBookAuthor(@RequestBody ReceiveData receiveData) {
    116. JSONObject jsonObject = new JSONObject();
    117. List<Book> books = bookService.getAllDBookPublishTimeByBookAuthor(receiveData.getBookName(), receiveData.getAuthor());
    118. jsonObject.put("msg", "查询成功");
    119. jsonObject.put("data", books);
    120. return jsonObject.toJSONString();
    121. }
    122. @RequestMapping("/getAllDBookPublisherByBookPublishTime")
    123. public String getAllDBookPublisherByBookPublishTime(@RequestBody ReceiveData receiveData) {
    124. JSONObject jsonObject = new JSONObject();
    125. List<Book> books = bookService.getAllDBookPublisherByBookPublishTime(receiveData.getBookName(), receiveData.getAuthor(), receiveData.getPublishTime());
    126. jsonObject.put("msg", "查询成功");
    127. jsonObject.put("data", books);
    128. return jsonObject.toJSONString();
    129. }
    130. @RequestMapping("/getAllDBookPriceByBookPublisher")
    131. public String getAllDBookPriceByBookPublisher(@RequestBody ReceiveData receiveData) {
    132. JSONObject jsonObject = new JSONObject();
    133. List<Book> books = bookService.getAllDBookPriceByBookPublisher(receiveData.getBookName(), receiveData.getAuthor(), receiveData.getPublishTime(), receiveData.getPublisher());
    134. jsonObject.put("msg", "查询成功");
    135. jsonObject.put("data", books);
    136. return jsonObject.toJSONString();
    137. }
    138. }

    application.yml:

    1. server:
    2. port: 8080
    3. spring:
    4. datasource:
    5. type: com.alibaba.druid.pool.DruidDataSource
    6. driver-class-name: com.mysql.cj.jdbc.Driver
    7. url: jdbc:mysql://localhost:3306/book_manager?useUnicode=true&characterEncoding=UTF-8&serverTimezone=UTC
    8. username: root
    9. password: root
    10. # 连接池配置
    11. druid:
    12. # 初始化,最小,最大 连接数
    13. initial-size: 3
    14. min-idle: 3
    15. max-active: 18
    16. # 获取数据库连接最长等待时间
    17. max-wait: 60000
    18. # 多久检测一次需要关闭的空闲连接
    19. time-between-eviction-runs-millis: 60000
    20. validation-query: SELECT 'x'
    21. redis:
    22. host: localhost
    23. port: 6379
    24. jedis:
    25. pool:
    26. max-active: 10
    27. max-idle: 8
    28. min-idle: 0
    29. max-wait: -1
    30. timeout: 0
    31. mail:
    32. host: smtp.qq.com
    33. password: ojxxnhpnawswffae
    34. username: 1102348527@qq.com
    35. properties:
    36. mail:
    37. auth: true
    38. smtp:
    39. enable: true
    40. mvc:
    41. static-path-pattern: classpath:static/**
    42. resources:
    43. static-locations: classpath:static/
    44. mybatis:
    45. mapper-locations: classpath:mapper/*Mapper.xml
    46. configuration:
    47. map-underscore-to-camel-case: true
    48. logging:
    49. level:
    50. root: info
    51. file:
    52. path: /bookManager/
    53. max-history: 30
    54. name: mylog.log
    55. pattern:
    56. file: '%d{yyyy-MM-dd} [%thread] %-5level %logger{50} - %msg%n'

  • 相关阅读:
    1. @Component注解的原理剖析
    python149基于知识图谱的智能推荐系统(flask)复现
    立新能源深交所上市:市值55亿 哈密国投与国有基金是股东
    nginx--正向代理、反向代理及负载均衡(图解+配置)
    轻重链剖分+启发式合并专题
    (附源码)ssm失物招领系统 毕业设计 182317
    javascript复习之旅 2.2 typeof
    【数据结构与算法】leetcode110.判断平衡二叉树
    FPGA学习笔记(3)——正点原子ZYNQ7000简介
    Windbg可以看到Visual Studio中看不到的有效函数调用堆栈
  • 原文地址:https://blog.csdn.net/weixin_46437112/article/details/128068462