-
配置日志
查看全部 -
MP的xml写sql处理找不到statement的方法;Invalid bound statement (not found);;mapper文件夹要创建在resources目录下;
#配置xml的存放路径,mapper包下的所有xml文件;在yml种写mapper-locations: classpath:/mapper/*.xml;查看全部 -
通用Service
基本方法:getOne
批量操作:saveBatch、saveOrUpdateBatch
链式调用:ChainWrappers 的 lambdaQuery查询、lambdaUpdate.update更新、lambdaUpdate.remove删除1、新建接口,继承MP提供的 IService<T> 接口。
2、新建Service类,继承MP提供的 ServiceImpl 类。
MP的 IService 提供的接口
查看全部 -
字段验证策略 FieldStrategy
该策略约定了如何产出注入的SQL,涉及到 insert、update 语句,以及 wrapper 内部的 entity 属性生成的 where 条件。
查看全部 -
主键策略,在IdType枚举类中定义。
注:3.x.x版本定义修改为【AUTO、NONE、INPUT、ASSIGN_ID、ASSIGN_UUID】
AUTO:自增
NONE:该类型表示用户未设置主键类型
INPUT:用户输入ID
/** ID_WORKER、UUID、ID_WORKER_STR 三种类型只有插入ID为空,才自动填充,
当用户输入值以输入为主 */
ID_WORKER:全局唯一ID(idWorker)
UUID:全局唯一ID(UUID)
ID_WORKER_STR:全局唯一ID 字符串自增
配置全局主键策略,注意:主键id局部策略优先级高于全局策略。
mybatis-plus:
global-config:
db-config:
id-type: auto
修改主键id为自增ID。
alter table user change column id id bigint(20) auto_increment;
查看全部 -
实现ActionRecord模式
1、实体类必须继承 Model<T> 对象
2、必须是先对象的BaseMapper<T>接口
查看全部 -
配置MyBatisPlus分页拦截器Pagination Interceptor
MP3.x.几以上变成了 MybatisPlusInterceptor 分页拦截器
https://baomidou.com/pages/2976a3/#spring
/**
* 新的分页插件, 一缓和二缓遵循mybatis的规则, 需要设置 MybatisConfiguration#useDeprecatedExecutor = false 避免缓存出现问题(该属性会在旧插件移除后一同移除)
*/@Bean
public MybatisPlusInterceptor mybatisPlusInterceptor() {
MybatisPlusInterceptor interceptor = new MybatisPlusInterceptor();
interceptor.addInnerInterceptor(new PaginationInnerInterceptor(DbType.MYSQL)); // DbType.H2
return interceptor;
}查看全部 -
自定义SQL语句
第一种方法:使用注解添加自定义语句,Wrapper添加构造条件
第二种方法:使用配置Mybatis的XML文件自定义SQL语句,,Wrapper添加构造条件
查看全部 -
使用实体作为条件构造器构造方法的参数
使用@TableField(condition = SqlCondition.LIKE) 表示该字段对应SQL语句是LIKE
如果SqlCondition里面没有对应的SQL语句则可自定义
@TableField(condition = "%s<#{%s}") // 第一个%s对应字段名, < 表示小于,#{%s} 对应输入的值
查看全部 -
排除非表字段的三种方式
1、添加 transient 排除。
2、添加 static 全局静态变量排除。
3、添加 @TableField(exist = false) 排除非表中的字段,exist = false 表示不是表中存在的列字段。
@TableField(exist = false)
private String text_transient;查看全部 -
常用注解
1、指定表名,用于与数据库表一一对应,非驼峰命名对应的情况。
@TableName("tp_user")
class User {...}
2、指定主键,用于数据库不是以id为主键的表。
@TableId
Long user_id;
3、指定列名,用于数据库修改了列名,而不想修改定义的变量的情况。
@TableField("real_name")
String name;
通用Mapper
查看全部 -
SSM传统变成模式
查看全部 -
@TableName 表
@TableId 主键
@TableField 对应字段
@TableField(exist=false) 排除字段
查看全部 -
对比?
查看全部 -
.selectOne
查看全部
举报