-
配置日志
查看全部 -
MP的xml寫sql處理找不到statement的方法;Invalid bound statement (not found);;mapper文件夾要?jiǎng)?chuàng)建在resources目錄下;
? ? ? ? ? ?#配置xml的存放路徑,mapper包下的所有xml文件;在yml種寫mapper-locations: classpath:/mapper/*.xml;查看全部 -
通用Service
基本方法:getOne
批量操作:saveBatch、saveOrUpdateBatch
鏈?zhǔn)秸{(diào)用:ChainWrappers 的 lambdaQuery查詢、lambdaUpdate.update更新、lambdaUpdate.remove刪除1、新建接口,繼承MP提供的 IService<T> 接口。
2、新建Service類,繼承MP提供的 ServiceImpl 類。
MP的 IService 提供的接口
查看全部 -
字段驗(yàn)證策略 FieldStrategy
該策略約定了如何產(chǎn)出注入的SQL,涉及到 insert、update 語句,以及 wrapper 內(nèi)部的 entity 屬性生成的 where 條件。
查看全部 -
主鍵策略,在IdType枚舉類中定義。
注:3.x.x版本定義修改為【AUTO、NONE、INPUT、ASSIGN_ID、ASSIGN_UUID】
AUTO:自增
NONE:該類型表示用戶未設(shè)置主鍵類型
INPUT:用戶輸入ID
?/** ID_WORKER、UUID、ID_WORKER_STR 三種類型只有插入ID為空,才自動(dòng)填充,
當(dāng)用戶輸入值以輸入為主 */
ID_WORKER:全局唯一ID(idWorker)
UUID:全局唯一ID(UUID)
ID_WORKER_STR:全局唯一ID?字符串自增
配置全局主鍵策略,注意:主鍵id局部策略優(yōu)先級高于全局策略。
mybatis-plus:
? global-config:
? ? db-config:
? ? ? ?id-type: auto
修改主鍵id為自增ID。
alter table user change column id id bigint(20) auto_increment;
查看全部 -
實(shí)現(xiàn)ActionRecord模式
1、實(shí)體類必須繼承 Model<T> 對象
2、必須是先對象的BaseMapper<T>接口
查看全部 -
配置MyBatisPlus分頁攔截器Pagination Interceptor
MP3.x.幾以上變成了 MybatisPlusInterceptor?分頁攔截器
https://baomidou.com/pages/2976a3/#spring
/**
* 新的分頁插件, 一緩和二緩遵循mybatis的規(guī)則, 需要設(shè)置 MybatisConfiguration#useDeprecatedExecutor = false 避免緩存出現(xiàn)問題(該屬性會(huì)在舊插件移除后一同移除)
*/@Bean
public MybatisPlusInterceptor mybatisPlusInterceptor() {
? ?MybatisPlusInterceptor interceptor = new MybatisPlusInterceptor();
? ?interceptor.addInnerInterceptor(new PaginationInnerInterceptor(DbType.MYSQL)); // DbType.H2
? ?return interceptor;
}查看全部 -
自定義SQL語句
第一種方法:使用注解添加自定義語句,Wrapper添加構(gòu)造條件
第二種方法:使用配置Mybatis的XML文件自定義SQL語句,,Wrapper添加構(gòu)造條件
查看全部 -
使用實(shí)體作為條件構(gòu)造器構(gòu)造方法的參數(shù)
使用@TableField(condition = SqlCondition.LIKE) 表示該字段對應(yīng)SQL語句是LIKE
如果SqlCondition里面沒有對應(yīng)的SQL語句則可自定義
@TableField(condition = "%s<#{%s}") ?// 第一個(gè)%s對應(yīng)字段名, < 表示小于,#{%s} 對應(yīng)輸入的值
查看全部 -
排除非表字段的三種方式
1、添加 transient 排除。
2、添加 static 全局靜態(tài)變量排除。
3、添加?@TableField(exist = false) 排除非表中的字段,exist = false 表示不是表中存在的列字段。
@TableField(exist = false)
private String text_transient;查看全部 -
常用注解
1、指定表名,用于與數(shù)據(jù)庫表一一對應(yīng),非駝峰命名對應(yīng)的情況。
@TableName("tp_user")
class User {...}
2、指定主鍵,用于數(shù)據(jù)庫不是以id為主鍵的表。
@TableId
Long user_id;
3、指定列名,用于數(shù)據(jù)庫修改了列名,而不想修改定義的變量的情況。
@TableField("real_name")
String name;
通用Mapper
查看全部 -
SSM傳統(tǒng)變成模式
查看全部 -
@TableName 表
@TableId 主鍵
@TableField 對應(yīng)字段
@TableField(exist=false) 排除字段
查看全部 -
對比?
查看全部 -
.selectOne
查看全部
舉報(bào)