springboot整合mybatis-plus
MyBatis-Plus (opens new window)(簡稱 MP)是一個 MyBatis (opens new window) 的增強工具,在 MyBatis 的基礎上只做增強不做改變,為簡化開發(一般不需要寫mapper.xml)、提高效率而生。
mybatis-plus的官網:https://mp.baomidou.com/
通過springboot快速部署並使用mybatis-Plus
1.創建一個springboot項目
編輯組名和java版本


選擇必要依賴

設置項目名與路徑

由於之前沒有mybatis-plus依賴,故上maven鏡像倉庫中找到相應的依賴添加到項目的pom.xml文件中並刷新maven。

mybatis-plus的maven倉庫網址為:https://mvnrepository.com/artifact/com.baomidou/mybatis-plus-boot-starter
2.創建一個用於操作數據的pg數據庫(mysql同理)
我這里創建的是一個名為school的數據庫,主要針對book表進行查詢,大致內容如下:

3.配置數據庫信息與mybatis-plus依賴
配置數據庫的加載驅動,url,用戶名與密碼並設置mybatis-plus配置打印日志到控制台。
application.yml的配置文件內容如下:
spring:
datasource:
driver-class-name: org.postgresql.Driver
url: jdbc:postgresql://localhost:5432/school
username: postgres
password: 123456
mybatis-plus:
configuration:
log-impl: org.apache.ibatis.logging.stdout.StdOutImpl
4.編寫實體層中的實體類Book,添加相應注解

5.編寫持久層中的mapper接口
在接口上添加@Repository注解並繼承mybatis-plus的mapper接口BaseMapper<T>
對於簡單的增刪改查直接調用該接口中的方法即可,具體方法參見官網,如果有復雜的方法,通過相應注解@Select("sql"),@Insert("sql"),@Delete("sql"),@Update("sql")編寫sql並添加相應的方法聲明
在springboot啟動類添加掃描器


6.編寫業務層的業務接口與實現類完成對數據的增刪改查
接口

接口實現類:
package com.shen.service.Impl;
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.baomidou.mybatisplus.core.conditions.update.UpdateWrapper;
import com.shen.dao.HandleBookDao;
import com.shen.entity.Book;
import com.shen.service.HandleBookService;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import java.util.List;
@Service
public class HandleBookServiceImpl implements HandleBookService {
@Autowired
HandleBookDao handleBookDao;
//添加圖書
@Override
public Integer addBook(Book book) {
return handleBookDao.insert(book);
}
//刪除圖書
@Override
public Integer deleteBook(String name) {
QueryWrapper<Book> queryWrapper = new QueryWrapper<>();
queryWrapper.eq("name",name);
return handleBookDao.delete(queryWrapper);
}
// 修改圖書
@Override
public Integer updateBook(Integer id, Double price) {
UpdateWrapper<Book> updateWrapper = new UpdateWrapper<>();
updateWrapper.eq("id",id)
.set("price",price);
return handleBookDao.update(null,updateWrapper);
}
//查詢圖書
@Override
public List<Book> selectBook() {
return handleBookDao.selectList(null);
}
}
7.編寫控制層的方法,主要是對業務層的調用。
package com.shen.controller;
import com.shen.entity.Book;
import com.shen.service.HandleBookService;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.*;
import java.util.List;
@RestController
@RequestMapping("api/vi/test")
public class TestController {
@Autowired
HandleBookService handleBookService;
//@RequestBody將請求信息的body內容綁定到程序的實體類中,此注解必須加不然接受不到數據
@PostMapping("/addBook")
public Integer addBook(@RequestBody Book book){
System.out.println(book);
return handleBookService.addBook(book);
}
@GetMapping("/deleteBook")
public Integer deleteBook(String name){
System.out.println(name);
return handleBookService.deleteBook(name);
}
@GetMapping("/updateBook")
public Integer updateBook(Integer id,Double price){
System.out.println(id);
return handleBookService.updateBook(id,price);
}
@GetMapping("/selectBook")
public List<Book> selectBook(){
return handleBookService.selectBook();
}
}
8.通過postman來測試
對數據的增刪改查進行測試




