MyBatis-Plus是MyBatis框架的一个扩展库,它提供了一系列方便的API和工具,可以简化常见的数据库操作。
<!-- Mybatis-plus依赖 -->
<dependency>
<groupId>com.baomidou</groupId>
<artifactId>mybatis-plus-boot-starter</artifactId>
<version>版本号</version>
</dependency>
<!-- 测试依赖 -->
<dependency>
<groupId>com.baomidou</groupId>
<artifactId>mybatis-plus-boot-starter-test</artifactId>
<version>版本号</version>
</dependency>
注意:如果项目中已经存在mybatis依赖,在使用mybatis-plus的时候需要把mybatis依赖注释或删除。
spring.datasource.druid.driver-class-name=com.mysql.cj.jdbc.Driver
spring.datasource.druid.url=jdbc:mysql://localhost:3306/数据库名?serverTimezone=Asia/Shanghai
spring.datasource.druid.username=账号
spring.datasource.druid.password=密码
# resource中Mapper映射文件目录
mybatis-plus.mapper-locations=classpath*:mapper/*Mapper.xml
# 实体类(采用全限定名)
mybatis-plus.type-aliases-package=com.fs.user.entity
@Mapper
@Repository
public interface UserMapper extends BaseMapper<User> {
}
核心:在于Dao接口继承BaseMapper的接口,BaseMappe接口中帮助开发者预定了若干个常用的API接口,简化了通用API接口的开发工作。
自定义表名注解,该注解写在实体类上
默认情况下,如果数据库表是使用标准的下划线命名,并且能对应上实体类的类名,我们就不需要特别去手动匹配。比如有张 user_info 表,那么会自动匹配下面这个实体类:
@Data
public class UserInfo {
private Integer id;
private String userName;
private String passWord;
}
主键注解,AUTO表示自增
非主键注解,可自定义列名
@TableName("sys_user")
public class User {
@TableId(type = IdType.AUTO)
private Long id;
@TableField("nickname")
private String name;
private Integer age;
private String email;
}
内置 SQL 默认指定排序,优先级低于 wrapper 条件查询
mybatis-plus测试注解
import org.junit.jupiter.api.Test;
import org.springframework.beans.factory.annotation.Autowired;
import static org.assertj.core.api.Assertions.assertThat;
@MybatisPlusTest
class MybatisPlusSampleTest {
// 将SampleMapper交给Spring(即配置bean)
@Autowired
private SampleMapper sampleMapper;
@Test
void testInsert() {
Sample sample = new Sample();
sampleMapper.insert(sample);
assertThat(sample.getId()).isNotNull();
}
}
如果数据库的表名定义规则是tb_模块名称(tb_user),为了能和实体类相对应。
mybatis-plus.global-config.db-config.table-prefix=tb_
注意:@TableName和该配置同时存在时会优先使用@TableName
原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。
如有侵权,请联系 cloudcommunity@tencent.com 删除。
原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。
如有侵权,请联系 cloudcommunity@tencent.com 删除。