你知道近來年大火的DDD是如何興起的嗎?以及與微服務的關係
阿新 • • 發佈:2021-10-14
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來測試
對資料的增刪改查進行測試