Mybaitis-Plus
简介 | MyBatis-Plus
初始化工程
使用 Spring Initializr 快速初始化一个 Spring Boot 工程
Group:com.nanjing
Artifact:mybatis-plus
版本:2.5.10
pom.xml中增加依赖
<!--mybatis-plus-->
<!--mysql-->
<!--lombok用来简化实体类-->
注意:
引入 MyBatis-Plus
之后请不要再次引入 MyBatis
以及 MyBatis-Spring
,
以避免因版本差异导致的问题。
<?xml version="1.0" encoding="UTF-8"?>
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 https://maven.apache.org/xsd/maven-4.0.0.xsd">
<modelVersion>4.0.0</modelVersion>
<parent>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-parent</artifactId>
<version>2.5.10</version>
<relativePath/> <!-- lookup parent from repository -->
</parent>
<groupId>com.nanjing</groupId>
<artifactId>mybatis-plus</artifactId>
<version>0.0.1-SNAPSHOT</version>
<name>mybatis-plus</name>
<description>Demo project for Spring Boot</description>
<properties>
<java.version>1.8</java.version>
</properties>
<dependencies>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-web</artifactId>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-test</artifactId>
<scope>test</scope>
</dependency>
<!--mybatis-plus-->
<dependency>
<groupId>com.baomidou</groupId>
<artifactId>mybatis-plus-boot-starter</artifactId>
<version>3.0.5</version>
</dependency>
<!--mysql-->
<dependency>
<groupId>mysql</groupId>
<artifactId>mysql-connector-java</artifactId>
</dependency>
<!--lombok用来简化实体类-->
<dependency>
<groupId>org.projectlombok</groupId>
<artifactId>lombok</artifactId>
</dependency>
</dependencies>
<build>
<plugins>
<plugin>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-maven-plugin</artifactId>
</plugin>
</plugins>
</build>
</project>
在Idea安装lombok插件,Idea2021自带了,不需要搜索安装了
在项目中使用Lombok可以减少很多重复代码的书写。比如说getter/setter/toString等方法的编写
在application.properties
配置文件中添加 MySQL 数据库的相关配置:
mysql5
#mysql数据库连接
spring.datasource.driver-class-name=com.mysql.jdbc.Driver
spring.datasource.url=jdbc:mysql://localhost:3306/mybatis_plus
spring.datasource.username=root
spring.datasource.password=mysql
创建包entity编写实体类User.java
(此处使用了 Lombok 简化代码)
package com.nanjing.mybatisplus.entity;
import lombok.Data;
@Data
public class User {
private Long id;
private String name;
private Integer age;
private String email;
}
创建包mapper 编写Mapper接口: UserMapper.java
package com.nanjing.mybatisplus.mapper;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.nanjing.mybatisplus.entity.User;
public interface UserMapper extends BaseMapper<User> {
}
最好加上@Repository注解
package com.nanjing.mybatisplus.mapper;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.nanjing.mybatisplus.entity.User;
import org.springframework.stereotype.Repository;
@Repository
public interface UserMapper extends BaseMapper<User> {
}
在Spring Boot启动类中添加@MapperScan
注解,扫描Mapper文件夹
package com.nanjing.mybatisplus;
import org.mybatis.spring.annotation.MapperScan;
import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;
@SpringBootApplication
@MapperScan("com.nanjing.mybatisplus.mapper")
public class MybatisPlusApplication {
public static void main(String[] args) {
SpringApplication.run(MybatisPlusApplication.class, args);
}
}
创建mybatis_plus库,建user表
DROP TABLE IF EXISTS USER;
CREATE TABLE USER
(
id BIGINT(20) NOT NULL COMMENT '主键ID',
NAME VARCHAR(30) NULL DEFAULT NULL COMMENT '姓名',
age INT(11) NULL DEFAULT NULL COMMENT '年龄',
email VARCHAR(50) NULL DEFAULT NULL COMMENT '邮箱',
PRIMARY KEY (id)
);
DELETE FROM USER;
INSERT INTO USER (id, NAME, age, email) VALUES
(1, 'Jone', 18, 'test1@baomidou.com'),
(2, 'Jack', 20, 'test2@baomidou.com'),
(3, 'Tom', 28, 'test3@baomidou.com'),
(4, 'Sandy', 21, 'test4@baomidou.com'),
(5, 'Billie', 24, 'test5@baomidou.com');
在测试类中,进行功能测试:
注意:
IDEA在userMapper 处报错,因为找不到注入的对象,因为类是动态创建的,但是程序可以正确
的执行。为了避免报错,可以在dao层的接口上添加@Repository注解。
package com.nanjing.mybatisplus;
import com.nanjing.mybatisplus.entity.User;
import com.nanjing.mybatisplus.mapper.UserMapper;
import org.junit.jupiter.api.Test;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.boot.test.context.SpringBootTest;
import java.util.List;
@SpringBootTest
class MybatisPlusApplicationTests {
@Autowired
private UserMapper userMapper;
@Test
void contextLoads() {
List<User> users = userMapper.selectList(null);
users.forEach(System.out::println);
}
}
查看sql输出日志
#mybatis日志
mybatis-plus.configuration.log-impl=org.apache.ibatis.logging.stdout.StdOutImpl
insert插入操作
//添加操作
@Test
public void addUser() {
User user = new User();
user.setName("岳不群1");
user.setAge(70);
user.setEmail("lucy@qq.com");
// user.setCreateTime(new Date());
// user.setUpdateTime(new Date());
int insert = userMapper.insert(user);
System.out.println("insert:"+insert);
}
注意:数据库插入id值默认为:全局唯一id
主键生成策略(面试会问)
(1)ID_WORKER
MyBatis-Plus默认的主键策略是:ID_WORKER,全局唯一ID
分布式系统唯一ID生成方案汇总:
分布式系统唯一ID生成方案汇总 - nick hao - 博客园
(2)自增策略
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)