关于mybatis-plus最全知识总结
0. MP官网
引入 MyBatis-Plus 之后请不要再次引入 MyBatis 以及 MyBatis-Spring,以避免因版本差异导致的问题。
1. 关于自定义sql
默认就会去找 classpath*:/mapper/**/*.xml
2. 关于批量添加/修改
mapper层没有提供相应方法,service层提供了【但是其实还是调用的mapper层的】,效率极低,它就是for循环里面一条一条添加数据。
3. 关于表名和实体类类名不一致
默认MP是去找跟你表名一样的实体类。
方法一:@TableName("t_user") 只能针对某一个实体类
方法二:
mybatis-plus:
global-config:
db-config:
table-prefix: t_
# 能针对全局
4. @TableId
MP默认是把属性id作为主键,如果你的主键不叫id,则使用@TableId指定哪个属性为你的主键。
MP默认是生成雪花算法的ID【与数据库id是否设置自增无关】。
如果,你的数据库里面叫 uid,而你的实体类里面你就想叫id,这时,你可以通过给@TableId设置值
@TableId(value = "uid")
private Long id;
@TableId的type属性:用于设置主键生成策略。
@TableId设置生成策略只能用于某一个实体类。
如果想全局设置
mybatis-plus:
global-config:
db-config:
table-prefix: t_
id-type: auto
4. @TableFileId
MP默认是把属性名与字段名作映射,如果你的字段名与属性名不匹配,
在MP中,默认会将字段里面的 _ 转成驼峰。
如user_name——>userName。
若你的属性名与字段名不匹配,如属性名是password,字段名是pswd。
则,你可以用@TableFileId指定字段名。
@TableFileld("pswd")
private String password;
在MP中,若你的数据库未定义某个属性,而你的实体类有。就会报错。
@TableFileld(exist="false")
private String sex;
在MP中,查询所有,默认会将属性全部查出来,若你想让某个字段不查出来
@TableFileld(select=false)
private String pwd;
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 【自荐】一款简洁、开源的在线白板工具 Drawnix
· 没有Manus邀请码?试试免邀请码的MGX或者开源的OpenManus吧
· 园子的第一款AI主题卫衣上架——"HELLO! HOW CAN I ASSIST YOU TODAY
· 无需6万激活码!GitHub神秘组织3小时极速复刻Manus,手把手教你使用OpenManus搭建本
· C#/.NET/.NET Core优秀项目和框架2025年2月简报