基于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风格开发的基础增删改查操作。
