栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > Java

基于SpringBoot的图书管理系统

Java 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

基于SpringBoot的图书管理系统

基于SpringBoot的图书管理系统

里面整合了比较全的内容,可以说是麻雀虽小五脏俱全,如果看懂了所有的内容可以说是已经非常精通SpringBoot了

一:引言
由于近期看了SpringBoot,一站式开发特别方便,情不自禁用SpringBoot整合了一下Web框架,Mybatis框架和thymeleaf框架写了一个图书管理系统。
其实可以直接用前后端分离来写的,但是我想练练手,用一个小demo把这些内容都整合到一起。
(其实前后端分离我还没学到)
二:项目目录

1.文件目录

2.导入依赖


            org.springframework.boot
            spring-boot-starter-web
        

        
            org.projectlombok
            lombok
            true
        
        
            org.springframework.boot
            spring-boot-starter-test
            test
        
        
            org.springframework.boot
            spring-boot-starter-web
        

        
            org.projectlombok
            lombok
            true
        
        
            org.springframework.boot
            spring-boot-starter-test
            test
        

        
            org.mybatis.spring.boot
            mybatis-spring-boot-starter
            2.2.0
        
        
            mysql
            mysql-connector-java
        
        
            org.springframework.boot
            spring-boot-starter-test
        


        
            org.springframework.boot
            spring-boot-starter-thymeleaf
        

3.proterties文件存储数据库连接信息
注意,我这里的url是我的数据库url,数据库名称是db10,不过不用担心,为了避免调试带来的麻烦,我创建数据库的时候直接创建了db10.

spring.datasource.url=jdbc:mysql://localhost:3306/db10?useUnicode=true&characterEncoding=UTF-8&userSSL=false&serverTimezone=GMT%2B8
spring.datasource.username=root
spring.datasource.password=123456
spring.datasource.driver-class-name=com.mysql.cj.jdbc.Driver

4.control控制器

import com.example.entry.Books;
import com.example.service.BookService;
import org.springframework.stereotype.Controller;
import org.springframework.ui.Model;
import org.springframework.web.bind.annotation.*;
import javax.annotation.Resource;
import java.util.List;
import java.util.Map;

@Controller

public class MainController {

    @Resource
    BookService bookService;

//    首页
    @RequestMapping("/index")
    public String index() {
        return "/index";
    }

//    这里是回显所有书本的逻辑
    @RequestMapping("/allBook")
    private String getBooksList(Model model) {
        List booksList = bookService.bookList("%");
        System.out.println(booksList);
        model.addAttribute("books",booksList);
        return "/allBook";
    }

    //    这里是添加过后的逻辑
    @RequestMapping(value = "addED",method = RequestMethod.POST)
    public String addBook(@RequestParam("bookName")String bookName,
                          @RequestParam("bookCounts")int bookCounts,
                          @RequestParam("detail")String detail){
        bookService.addBook(bookName,bookCounts,detail);
        return "redirect:/allBook";
    }

//    这里是添加之前的逻辑
    @RequestMapping("/adding")
    public String index4() {
        return "/addBook";
    }

    //    这里是删除逻辑,删除完了直接重定向
    @RequestMapping(value = "delBook",method = RequestMethod.GET)
    public String addBook(@RequestParam("bookID") int bookID){
        bookService.Del(bookID);
        return "redirect:allBook";
    }

//    修改前
    @RequestMapping("/update")
    public String update(@RequestParam("bookID") int bookID,Model model){
        Books book =bookService.findByID(bookID);
        model.addAttribute("book",book);
        return "updateBook";
    }
//    修改后重定向
    @RequestMapping("/updateBook2")
    public String updateBook2(@ModelAttribute(value = "demo") Books demo, Model model){
//        这里是一个测试,测试提交完信息的内容是否会改变
        System.out.println(demo.toString()+"这里是接收到的信息");
        bookService.update(demo.getBookID(),demo.getBookName(),demo.getBookCounts(),demo.getDetail());
        return "redirect:allBook";
    }
}

5.Books实体类

import lombok.Data;

@Data

public class Books {
    public int bookID;
    public String bookName;
    public int bookCounts;
    public String detail;

    public int getBookID() {
        return bookID;
    }

    public void setBookID(int bookID) {
        this.bookID = bookID;
    }

    public String getBookName() {
        return bookName;
    }

    public void setBookName(String bookName) {
        this.bookName = bookName;
    }

    public int getBookCounts() {
        return bookCounts;
    }

    public void setBookCounts(int bookCounts) {
        this.bookCounts = bookCounts;
    }

    public String getDetail() {
        return detail;
    }

    public void setDetail(String detail) {
        this.detail = detail;
    }

    @Override
    public String toString() {
        return "Books{" +
                "bookID=" + bookID +
                ", bookName='" + bookName + ''' +
                ", bookCounts=" + bookCounts +
                ", detail='" + detail + ''' +
                '}';
    }

    public Books(int bookID, String bookName, int bookCounts, String detail) {
        this.bookID = bookID;
        this.bookName = bookName;
        this.bookCounts = bookCounts;
        this.detail = detail;
    }
}

6.mapper接口

import com.example.entry.Books;
import org.apache.ibatis.annotations.*;

import java.util.List;

@Mapper
public interface MainMapper {

    //    查看所有数据,这里用到了模糊查询
    @Select("select *from books where bookName like#{name}")
    List bookList(String name);

    //    查找书籍,用于修改书籍时候的数据回显
    @Select("select * from books where bookID=#{bookID}")
    Books findByID(@Param("bookID") int bookID);


    //    删除书籍
    @Delete("delete from books where bookID=#{bookID}")
    void Del(@Param("bookID") int bookID);

    //    增加书籍
    @Insert("insert into books (bookName,bookCounts,detail) values ( #{bookName} , #{bookCounts} , #{detail} )")
    void addBook(@Param("bookName") String bookName, @Param("bookCounts") int bookCounts, @Param("detail") String Detail);

    //    修改书籍
    @Update("update books set bookName=#{bookName} , bookCounts=#{bookCounts} , detail=#{detail} where bookID=#{bookID}")
    void update(@Param("bookID")int bookID,@Param("bookName") String bookName, @Param("bookCounts") int bookCounts, @Param("detail") String Detail);


}

7.service操作

import com.example.entry.Books;
import com.example.mapper.MainMapper;
import org.springframework.stereotype.Service;

import javax.annotation.Resource;
import java.util.List;

@Service
public class BookService {
//    数据源
    @Resource
    MainMapper mapper;

//    会先数据,显示所有书籍的列表
    public List bookList(String name) {
        return mapper.bookList("%");
    }

//    删除书籍操作
    public void Del(int bookID) {
        mapper.Del(bookID);
    }

//    添加书籍操作
    public void addBook(String name, int count, String detail) {
        mapper.addBook(name, count, detail);
    }

//    修改书籍操作,这里由于是涉及到了修改,所以自然要回显数据
    public Books findByID(int bookID) {
        return mapper.findByID(bookID);
    }

//    更新操作
    public void update(int id, String name, int counts, String detail) {
        mapper.update(id, name, counts, detail);
    }


}

8.数据库

CREATE DATAbase `db10`;

USE `db10`;

DROP TABLE IF EXISTS `books`;

CREATE TABLE `books` (
`bookID` INT(10) NOT NULL AUTO_INCREMENT COMMENT '书id',
`bookName` VARCHAR(100) NOT NULL COMMENT '书名',
`bookCounts` INT(11) NOT NULL COMMENT '数量',
`detail` VARCHAR(200) NOT NULL COMMENT '描述',
KEY `bookID` (`bookID`)
) ENGINE=INNODB DEFAULT CHARSET=utf8;

INSERT  INTO `books`(`bookID`,`bookName`,`bookCounts`,`detail`)VALUES
(1,'Java',1,'从入门到放弃'),
(2,'MySQL',10,'从删库到跑路'),
(3,'Linux',5,'从进门到进牢');

9.前端页面
index首页



    首页
    


点击进入列表页

addBook添加图书页面



    新增书籍
    
    
    


书籍名称:


书籍数量:


书籍详情:


allBook显示所有图书



    书籍列表
    
    
    


书籍编号 书籍名字 书籍数量 书籍详情 删除 修改

updateBook更新图书信息页面



    修改信息
    
    
    


书籍名称: 书籍数量: 书籍详情:
转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/770710.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号