springboot 整合 mybatis plus(簡單實現)

引入mybatis plus的所需要的包

目錄結構

在這裏插入圖片描述

pom.xml

<dependencies>
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-web</artifactId>
        </dependency>
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-devtools</artifactId>
            <scope>runtime</scope>
            <optional>true</optional>
        </dependency>
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-configuration-processor</artifactId>
            <optional>true</optional>
        </dependency>
        <dependency>
            <groupId>org.projectlombok</groupId>
            <artifactId>lombok</artifactId>
            <optional>true</optional>
        </dependency>
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-test</artifactId>
            <scope>test</scope>
        </dependency>


        <!--導入jdbc依賴的包-->
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-jdbc</artifactId>
        </dependency>
        <!--junit-->
        <dependency>
            <groupId>junit</groupId>
            <artifactId>junit</artifactId>
        </dependency>
        <!-- 這是mybatis-plus依賴 -->
        <dependency>
            <groupId>com.baomidou</groupId>
            <artifactId>mybatis-plus-boot-starter</artifactId>
            <version>3.3.1</version>
        </dependency>
        <!-- 這是mybatis-plus的代碼自動生成器 -->
        <dependency>
            <groupId>com.baomidou</groupId>
            <artifactId>mybatis-plus-generator</artifactId>
            <version>3.3.1</version>
        </dependency>
        <!-- 這是模板引擎依賴 -->
        <dependency>
            <groupId>org.freemarker</groupId>
            <artifactId>freemarker</artifactId>
            <version>2.3.28</version>
        </dependency>
        <!--mysql驅動-->
        <dependency>
            <groupId>mysql</groupId>
            <artifactId>mysql-connector-java</artifactId>
        </dependency>
        <dependency>
            <groupId>org.springframework</groupId>
            <artifactId>spring-jdbc</artifactId>
        </dependency>
    </dependencies>

配置application.yml文件

server:
  port: 8081

#數據庫的配置信息
spring:
  datasource:
    driver-class-name: com.mysql.cj.jdbc.Driver
    url: jdbc:mysql://localhost:3306/mybatis?useSSL=true&useUnicode=true&characterEncoding=UTF8&serverTimezone=UTC
    username: root
    password: root

logging:
  level:
    # 根日誌記錄器輸出warn級別
    root: warn
    # com.zzw.mapper下輸出:trance級別日誌
    com.zzw.mapper: trace
  # 日誌格式
  pattern:
    # %p:日誌級別, %m:內容, %n:換行
    console: '%p%m%n'

數據庫結構

在這裏插入圖片描述

配置啓動類(Application.java)

package com.zzw;

import org.mybatis.spring.annotation.MapperScan;
import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;

//用於查找mapper下的接口
@MapperScan("com.zzw.mapper")
@SpringBootApplication
public class Application {

    public static void main(String[] args) {
        SpringApplication.run(Application.class, args);
    }

}

實體類配置

Books.java

package com.zzw.entity;

import com.baomidou.mybatisplus.annotation.IdType;
import com.baomidou.mybatisplus.annotation.TableId;
import lombok.Data;

import java.util.Date;

/**
 * @author: zBei
 * @description:
 **/
@Data
public class Books {
	//用於聲明主鍵,AUTO : AUTO(0, “數據庫ID自增”)
    @TableId(type = IdType.AUTO)
    private Integer bookId;
    private String bookName;
    private String bookAuthor;
    private Date bookBirth;
}

mapper配置

BooksMapper.java

package com.zzw.mapper;

import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.zzw.entity.Books;

/**
 * @author: zBei
 * @description: 繼承BaseMapper,該類提供數據庫的操作方法
 **/
public interface BooksMapper extends BaseMapper<Books> {

}

測試環節

mybatisPlusTest.java

package com.zzw;

import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.zzw.entity.Books;
import com.zzw.mapper.BooksMapper;
import org.junit.Assert;
import org.junit.Test;
import org.junit.runner.RunWith;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.boot.test.context.SpringBootTest;
import org.springframework.test.context.junit4.SpringRunner;

import java.util.Date;
import java.util.List;

/**
 * @author: zBei
 * @description:
 **/
@RunWith(SpringRunner.class)
@SpringBootTest(classes = Application.class)
public class mybatisPlusTest {


    @Autowired
    @SuppressWarnings("all")
    private BooksMapper booksMapper;

    /**
     * @author: zBei
     * @description: selectList()用於查詢所有數據 使用方法1
     **/
    @Test
    public void selectListTest1(){
        /**
         * 數據庫是下劃線的,在實體類中一定要講下劃線變成駝峯命名法,要不返回null
         * */
        List<Books> list = booksMapper.selectList(null);
        //使用斷言(Assert)驗證是否是4個數據
        //Assert.assertEquals(4,list.size());
        //使用Lambda表達式遍歷集合
        //list.forEach(System.out::println);
    }

    /**
     * @author: zBei
     * @description: selectList()用於查詢所有數據 使用方法2
     **/
    @Test
    public void selectListTest2(){
        QueryWrapper<Books> qw = new QueryWrapper<>();
        List<Books> list = booksMapper.selectList(qw);

        for (Books book : list) {
            System.out.println(book);
        }

    }

    /**
     * @author: zBei
     * @description: insert()插入數據 方法的使用
     **/
    @Test
    public void insertTest(){
        Books books = new Books();
        books.setBookName("夢幻花");
        books.setBookAuthor("東野圭吾");
        books.setBookBirth(new Date());
        int i = booksMapper.insert(books);
        System.out.println("影響個數:"+i);
    }

    /**
     * @author: zBei
     * @description:  updateById() 通過id修改數據
     **/
    @Test
    public void updateTest(){
        Books books = new Books();
        books.setBookId(5);
        books.setBookName("夢幻花2020");
        books.setBookAuthor("東野圭吾");
        books.setBookBirth(new Date());
        booksMapper.updateById(books);
    }


    /**
     * @author: zBei
     * @description: update() 通過自定義條件修改數據
     **/
    @Test
    public void updateTest2(){
        Books books = new Books();
        books.setBookAuthor("更新東野圭吾");
        QueryWrapper<Books> qw = new QueryWrapper<>();
        qw.eq("book_name","夢幻花2020");

        int updateRows = booksMapper.update(books, qw);
        System.out.println("影響個數:"+updateRows);
    }

    /**
     * @author: zBei
     * @description:  deleteById()通過id刪除數據
     **/
    @Test
    public void deleteTest1(){
        booksMapper.deleteById(5);
    }

    /**
     * @author: zBei
     * @description:  delete()通過自定義條件刪除數據
     **/
    @Test
    public void deleteTest2(){
        QueryWrapper<Books> qw = new QueryWrapper<>();
        qw.eq("book_name","夢幻花");
        booksMapper.delete(qw);
    }
    
	/**
     * @author: zBei
     * @description:  selectById() 通過id查詢數據
     **/
    @Test
    public void selectByIdTest(){
        Books books = booksMapper.selectById(1);
        System.out.println(books);
    }

    /**
     * @author: zBei
     * @description: selectMaps() 根據自定義條件查詢數據
     **/
    @Test
    public void selectByMap(){
        QueryWrapper<Books> qw = new QueryWrapper<>();
        qw.eq("book_name","我們仨");
        List<Map<String, Object>> maps = booksMapper.selectMaps(qw);
        System.out.println(maps);
    }

    /**
     * @author: zBei
     * @description: selectCount() 用於查詢總數
     **/
    @Test
    public void selectCount(){
        QueryWrapper<Books> qw = new QueryWrapper<>();
        Integer count = booksMapper.selectCount(qw);
        System.out.println("總數爲:"+count);
    }
	/**
     * @author: zBei
     * @description: selectList() 用於進行模糊查詢
     **/
    @Test
    public void selectLike(){
        QueryWrapper<Books> qw = new QueryWrapper<>();
        qw.like("book_author","東");
        List<Books> list = booksMapper.selectList(qw);
        System.out.println(list);
    }
}

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章