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