1.MybatisPlus(二)MybatisPlus入门案例2.MybatisPlus(一)MybatisPlus简介3.MybatisPlus(三)MybatisPlus CRUD操作4.MybatisPlus(四)MybatisPlus分页5.MybatisPlus(五)MybatisPlus条件查询6.MybatisPlus(六)MybatisPlus-空值处理7.MybatisPlus(七)MybatisPlus-DQL编程控制(上)
8.MybatisPlus(八)MybatisPlus-DQL编程控制(下)
9.MybatisPlus(九)MybatisPlus-DML编程控制10.MybatisPlus(十)MybatisPlus-逻辑删除和多记录操作11.MybatisPlus(十一)MybatisPlus-乐观锁12.MybatisPlus(十二)Mybatis-Plus 代码生成器
一、字段映射与表名映射
数据库表和实体类名称一样自动关联,数据库表和实体类有部分情况不一样。
问题一:表名与编码开发设计不同步,表名和实体类名称不一致。
解决办法:
在模型类上方,使用@TableName注解,通过value属性,设置当前类对应的数据库表名称。
示例代码如下:
package com.it.domain; import com.baomidou.mybatisplus.annotation.TableField; import com.baomidou.mybatisplus.annotation.TableName; import lombok.Data; //lombok @Data @TableName("tbl_user")// public class User { private Long id; private String name; @TableField(value = "pwd",select = false) private String password; private Integer age; private String tel; @TableField(exist = false) private Integer online; }
问题二:表字段与编码属性设计不同步
解决办法:
在模型类属性上方,使用@TableField属性注解,通过value属性,设置当前属性对应的数据库表中的字段关系。
示例代码:
package com.it.domain; import com.baomidou.mybatisplus.annotation.TableField; import com.baomidou.mybatisplus.annotation.TableName; import lombok.Data; //lombok @Data @TableName("tbl_user")// public class User { private Long id; private String name; @TableField(value = "pwd",select = false) private String password; private Integer age; private String tel; @TableField(exist = false) private Integer online; }
问题三:编码中添加了数据库中未定义的属性
在User实体类中定义了 是否在线属性。
解决办法:
在模型类属性上方,使用@TableField注解,通过exist属性,设置属性在数据库表字段中是否存在,默认为true。此属性无法与value合并使用。
示例代码:
package com.it.domain; import com.baomidou.mybatisplus.annotation.TableField; import com.baomidou.mybatisplus.annotation.TableName; import lombok.Data; //lombok @Data @TableName("tbl_user")// public class User { private Long id; private String name; @TableField(value = "pwd",select = false) private String password; private Integer age; private String tel; @TableField(exist = false) private Integer online; }
问题四:采用默认查询开放了更多的字段查看权限
用字段列表查询,列出字段,带有索引往前排,不带索引的往后排,查询效率有一定提升。
解决办法:
在模型类属性上方,使用@TableField注解,通过select属性:设置该属性是否参与查询。此属性与select()映射配置不冲突。
示例代码:
package com.it.domain; import com.baomidou.mybatisplus.annotation.TableField; import com.baomidou.mybatisplus.annotation.TableName; import lombok.Data; //lombok @Data @TableName("tbl_user")// public class User { private Long id; private String name; @TableField(value = "pwd",select = false) private String password; private Integer age; private String tel; @TableField(exist = false) private Integer online; }
单元测试代码:
package com.it; import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; ... @SpringBootTest class Mybatisplus02DqlApplicationTests { @Autowired private UserDao userDao; @Test void testGetAll() { LambdaQueryWrapper<User> lqw = new LambdaQueryWrapper<User>(); List<User> userList = userDao.selectList(lqw); System.out.println(userList); } }
经过测试,字段名与表名映射成功。
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】凌霞软件回馈社区,博客园 & 1Panel & Halo 联合会员上线
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】博客园社区专享云产品让利特惠,阿里云新客6.5折上折
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· CSnakes vs Python.NET:高效嵌入与灵活互通的跨语言方案对比
· DeepSeek “源神”启动!「GitHub 热点速览」
· 我与微信审核的“相爱相杀”看个人小程序副业
· Plotly.NET 一个为 .NET 打造的强大开源交互式图表库
· 上周热点回顾(2.17-2.23)