springboot整合mybatis-plus


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

對數據的增刪改查進行測試





免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM