引入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);
}
}