
MyBatis
AdamShyly
努力学习
展开
-
MyBatis-plus BaseMapper 自定义insert方法 插入自增ID对象及其他无关该表的字段
需求:做一个多表查询过滤后的Insert SQL,需要获取insert后的自增ID,并且该自定义的BaseMapper能够传入除Entity(下方代码为Points)以外的`其余变量`(其他表的字段,下方代码为type)但是如果相似的Insert SQL增多后,会不断污染该实体类的字段,降低代码的可维护性。因此,本文直接对自定义的BaseMapper子类Insert方法扩展形式参数,只需在@Insert中指明某些字段为Points对象的成员变量即可。原创 2024-11-21 11:53:56 · 314 阅读 · 0 评论 -
MyBatis-Plus getById 查询语句正常但返回值为NULL
而且在使用@TableFiled 时需要不能通过手写SQL的方式,因为通过手写SQL的方式MP不能将别名语句补到该SQL语句中,从而失效。所以下次在设定属性名一定要遵守驼峰命名法呀...由于该项目代码是我的一位导师发给我的,我当时拿到代码也没去注意属性名不规范的问题(不是甩锅)改了一晚上,非常痛苦。刚开始我以为是实体类的属性名与数据库表字段的映射关系出现异常,而后我尝试使用@TableFiled注解对实体类的属性名进行映射。最后发现在MyBatis-Plus中,实体类的属性名不能带。原创 2022-10-06 02:58:17 · 3742 阅读 · 0 评论 -
MyBatis @Result @One @Many
在进行表查询的时候如果需要将结果集封装为多个实体类对象,可以在xml中使用resultMap解决,但如果使用的是注解则需要使用@Result以下是一对一两表查询的例子,需要对结果集的每一个column表字段都分别进行实体对象属性映射,比较笨重 @Select("select *, o.id oid from orders as o, user as u where u.id = o.uid") @Results({ @Result(column = "oid"原创 2022-05-14 21:52:45 · 1133 阅读 · 0 评论 -
MyBatis resultMap与resultType
resultMap和resultType一样都是为了将表查询的结果集映射到自定义的实体类中但在使用MyBatis进行表查询的时候可能会遇到两个问题:表字段与实体类属性名不一致、多表查询需要返回多个实体类对象。这时候resultType便无法解决这两个问题,而resultMap可以根据配置信息将表字段与实体类属性名直接进行映射,不需要像resultType一样需要表字段和属性名一致才能进行映射 <resultMap id="orderMap" type="order">原创 2022-05-14 16:48:45 · 177 阅读 · 0 评论