1. 程式人生 > 其它 >你知道近來年大火的DDD是如何興起的嗎?以及與微服務的關係

你知道近來年大火的DDD是如何興起的嗎?以及與微服務的關係

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來測試

對資料的增刪改查進行測試