boot:
核心配置:配置文件
映射配置:sql映射
勾选sql
勾选Mybatis与sql驱动
0.导入MP依赖:
MP
1.服务层继承接口X2![](https://img-blog.csdnimg.cn/4312844660fb4725b6343c0ddea6af1d.png?x-oss-process=image/watermark,type_ZHJvaWRzYW5zZmFsbGJhY2s,shadow_50,text_Q1NETiBA57u_55qu6Ii56ZW_,size_20,color_FFFFFF,t_70,g_se,x_16)
2.持久层
3.配置文件
1.主键策略
@tableId()(主键的指定)
在bean类的属性之上,指定主键,value指表中字段
@TableName(表名的指定)
在bean类的类名之上,指定该bean类对应的表名
全局配置
映射sql下划线映射驼峰命名(默认true)
全局主键配置
全局表名前缀配置策略
bean类字段不插入到表中
查询操作
selectOne并列条件查询
分页查询:
1.注册一个分页查询插件
@Configuration
public class MpConfig {
@Bean
public MybatisPlusInterceptor mybatisPlusInterceptor(){
MybatisPlusInterceptor mybatisPlusInterceptor = new MybatisPlusInterceptor();
mybatisPlusInterceptor.addInnerInterceptor(new PaginationInnerInterceptor());
return mybatisPlusInterceptor;
}
}
- 2.服务层的分页查询方法IPage
- dao.selectPage()层查询,传入一个]\page,以及查询条件,
分页条件查询
1.逆向工程
1.导入依赖
<dependency>
<groupId>org.apache.velocity</groupId>
<artifactId>velocity-engine-core</artifactId>
<version>2.0</version>
</dependency>
<dependency>
<groupId>org.slf4j</groupId>
<artifactId>slf4j-api</artifactId>
</dependency>
<dependency>
<groupId>org.slf4j</groupId>
<artifactId>slf4j-log4j12</artifactId>
</dependency>
2.主方法中运行
FastAutoGenerator.create("jdbc:mysql://localhost:3306/mybatis?useSSL=false&characterEncoding=utf8",
"root", "123456")
.globalConfig(builder -> {
builder.author("looper") // 设置作者
.fileOverride() // 覆盖已生成文件
.outputDir("E:\\2.develop_tools\\CODE\\workspace_idea1\\模块名字\\src\\main\\java"); // 指定输出目录
})
.packageConfig(builder -> {
builder.parent("com.cskaoyan") // 设置父包名
.moduleName("虚拟路径名字") // 设置父包模块名
.pathInfo(Collections.singletonMap(OutputFile.mapperXml, "E:\\2.develop_tools\\CODE\\workspace_idea1\\模块名字\\src\\main\\resources\\mapper")); // 设置mapperXml生成路径
})
.strategyConfig(builder -> {
builder.addInclude("表格名字") // 设置需要生成的表名
.addTablePrefix("tbl_", "c_"); // 设置过滤表前缀
})
.templateEngine(new VelocityTemplateEngine())
.execute();
逻辑删除
mybatis-plus:
global-config:
db-config:
logic-delete-field: flag # 全局逻辑删除的实体字段名(since 3.3.0,配置后可以忽略不配置步骤2)
logic-delete-value: 1 # 逻辑已删除值(默认为 1)
logic-not-delete-value: 0 # 逻辑未删除值(默认为 0)
接受json字符串
xml文件里的每一个sql语句都会被封装进mappedStatements里(mybatis原理)