基于springboot开发的图书管理系统

前端技术:html + css + jvavscript + vue + + element ui

后端技术:java+ springboot + plus + mysql数据库

项目管理工具:

服务器:tomcat

相关功能演示

点击新增功能按钮,弹出新增图书界面。

输入相关信息后,点击确定按钮,弹出成功提示。

点击编辑功能按钮,弹出修改图书界面。

输入相关信息后,点击确定按钮,弹出成功提示。

点击删除功能按钮,弹出是否修改提示。

点击确定按钮,弹出删除成功提示。

在查询框输入要查询的信息,点击查询后得到想要查询的信息。

后端代码:

数据层代码:

@Mapper
public interface BookDao extends BaseMapper<Book> {
}

由于使用了mybatis-plus工具简化了开发,接口中原来基础的增删改查,由继承的BaseMapper类中提供。因此简化了书写。

业务层接口代码:

public interface IBookService extends IService<Book> {

    IPage<Book> getPage (int currentPage, int pageSize);

    IPage<Book> getPage(int currentPage, int pageSize, Book book);
}

mybatis-plus提供的IService<Book>接口包含了基础的增删改查方法,同样帮助我们简化了业务层的开发。

业务层实现类代码:

@Service
public class BookServiceImpl extends ServiceImpl<BookDao, Book> implements IBookService {

    @Autowired
    private BookDao bookDao;

    @Override
    public IPage<Book> getPage(int currentPage, int pageSize) {
        IPage page =new Page( currentPage,pageSize);
        return  bookDao.selectPage(page, null);
    }

    @Override
    public IPage<Book> getPage(int currentPage, int pageSize, Book book) {
        LambdaQueryWrapper<Book> lqw =new LambdaQueryWrapper<>();
        lqw.like(Strings.isNotEmpty(book.getType()),Book::getType,book.getType());
        lqw.like(Strings.isNotEmpty(book.getName()),Book::getName,book.getName());
        lqw.like(Strings.isNotEmpty(book.getDescription()),Book::getDescription,book.getDescription());
        IPage page =new Page( currentPage,pageSize);
        return  bookDao.selectPage(page, lqw);
    }
}

表现层代码:

@RestController
@RequestMapping("/books")
public class BookController {
    @Autowired
    private IBookService bookService;

    @GetMapping
    public R getAll(){
        List<Book> books = bookService.list();
        return new R(true,books);
    }
    @PostMapping
    public R save(@RequestBody Book book){
        boolean flag = bookService.save(book);
        return new R(flag,flag ? "添加成功" : "添加失败!");
    }

    @PutMapping
    public R update(@RequestBody  Book book){
        boolean flag = bookService.updateById(book);
        return new R(flag, flag ? "修改成功" : "修改失败");
    }

    @GetMapping("/{id}")
    public R getById(@PathVariable Integer id){
        return new R(true,bookService.getById(id));
    }

    @DeleteMapping("/{id}")
    public R deteleById(@PathVariable Integer id){
        return new R(true,bookService.removeById(id));
    }
    @GetMapping("/{currentPage}/{pageSize}")
    public R getPage (@PathVariable int currentPage,@PathVariable int pageSize,Book book ){
        //如果当前页码值大于总页码值,将总页码值作为当前查询页码值
        IPage<Book> page = bookService.getPage(currentPage,pageSize,book);
        if(currentPage >page.getPages()){
            page = bookService.getPage((int) page.getPages(),pageSize,book);
        }
        return new R(true,page);
    }
}

基于rest风格开发的基础增删改查操作。

经验分享 程序员 微信小程序 职场和发展