MyBatis-Plus(简称 MP)是一个 MyBatis 的增强工具,在 MyBatis 的基础上只做增强不做改变,为简化开发、提高效率而生。
SQL脚本
DROP TABLE IF EXISTS `user`;
CREATE TABLE `user` (
`id` bigint(50) NOT NULL AUTO_INCREMENT,
`name` varchar(255) DEFAULT NULL,
PRIMARY KEY (`id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4;
POM依赖
<parent>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-parent</artifactId>
<version>2.2.4.RELEASE</version>
</parent>
<dependency>
<groupId>mysql</groupId>
<artifactId>mysql-connector-java</artifactId>
<version>5.1.47</version>
</dependency>
<dependency>
<groupId>com.baomidou</groupId>
<artifactId>mybatis-plus-boot-starter</artifactId>
<version>3.1.1</version>
</dependency>
配置
在 application.yml
配置文件中添加数据库的相关配置:
spring:
datasource:
driver-class-name: com.mysql.jdbc.Driver
url: jdbc:mysql://localhost:3306/test?useSSL=false&useUnicode=true&characterEncoding=utf- 8&allowMultiQueries=true&autoReconnect=true&failOverReadOnly=false&maxReconnects =10
username: root
password: 123456
type: com.zaxxer.hikari.HikariDataSource
mybatis-plus:
mapper-locations=classpath: /mapper/**.xml
type-aliases-package: com.demo.entity
configuration:
map-underscore-to-camel-case: true
logging:
level:
com:
demo:
mapper: debug
在 Spring Boot 启动类中添加 @MapperScan 注解,扫描 Mapper 文件夹:
@SpringBootApplication
@MapperScan("com.demo.mapper")
public class SpringBootDemoApplication {
public static void main(String[] args) {
SpringApplication.run(SpringBootDemoApplication.class, args);
}
}
编码
实体类:
import com.baomidou.mybatisplus.annotation.IdType;
import com.baomidou.mybatisplus.annotation.TableId;
import lombok.Data;
@Data
public class User {
@TableId(type= IdType.AUTO)
private Integer id;
private String name;
}
Mapper类:
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.demo.entity.User;
public interface UserMapper extends BaseMapper<User> {
}
Service类:
import com.baomidou.mybatisplus.extension.service.IService;
import com.demo.entity.User;
public interface UserService extends IService<User> {
}
// 实现类
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import com.demo.entity.User;
import com.demo.mapper.UserMapper;
import com.demo.service.UserService;
import org.springframework.stereotype.Service;
@Service
public class UserServiceImpl extends ServiceImpl<UserMapper, User> implements UserService {
@Override
public boolean save(User entity) {
return super.save(entity);
}
}
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
"http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="mapper">
</mapper>
测试
@RunWith(SpringRunner.class)
@SpringBootTest
class SpringBootDemoApplicationTests {
@Resource
UserService userService;
@Test
void save() {
User user = new User();
user.setName("James");
userService.save(user);
}
}