MyBatis-Plus被网友推荐好用,它可以解决多表关联的问题吗?
1、mybatis-plus多表查询,需自己写xml进行查询。在mapper中定义,如需分页查询可添加page。在xml中编写sql语句,这里进行简单的自连接查询 在serviceImpl中进行返回。
2、众所周知,mybatis plus 封装的 mapper 不支持 join,如果需要支持就必须自己去实现。但是对于大部分的业务场景来说,都需要多表达 join,要不然就没必要采用关系型数据库了。
3、以上部分你只需要修改两表联合查询的sql语句,参数部分不需要修改,留给Wrapper 对象自信添加。以及修改相对应的返回实体类。controller中只需调用上面mapper中的方法即可。把pageindex和pageSize放进page对象。
4、mybatis-plus是对mybatis的增强,不是替代。从某种程度上来说,可以完全替代dao和mapper 使用LambdaQueryWrapper可以避免实体和数据对应关系写错,推荐使用。
mybatis-plus和mybatis的区别
1、根本就不是同一类东西。如果Mybatis Plus是扳手,那Mybatis Generator就是生产扳手的工厂。
2、使用Mybatis yml文件配置的mapper映射及相关信息格式:使用Mybatis-Plus yml文件配置的mapper映射及相关信息格式:Others 加上 @Slf4j 注解后,仍然不能用log直接支配日志,因为没有安装Lombok插件。
3、MyBatis-Plus (opens new window)(简称 MP)是一个 MyBatis (opens new window)的增强工具,在 MyBatis 的基础上只做增强不做改变,为简化开发、提高效率而生。
4、提升mybatis的开发效率,且性能没有降低。mybatis plus兼容mybatis的相关配置和使用方式,除了generator不同。新项目可以根据项目情况使用,旧项目那就不用折腾了。运行的项目通常情况下稳定第一。
5、MyBatis的插件MyBatis-Plus,又叫苞米豆(baomidou),简称MP,官方说,它是为了猿类崛起而生,为了提高生产率而生,为了简化开发而生,不管它为了什么而生吧,反正是它出生了。
6、MyBatis-plus是完全基于MyBatis开发的一个增强工具,是在MyBatis的基础上做增强的框架,为简化开发、提高效率而生。
MyBatis-Plus中如何使用ResultMap
1、然后在自定义查询中添加 @ResultMap 注解,如下:这样,也能解决问题。下面简单看下源码, @ResultMap(mybatis-plus_实体类名) 怎么来的。
2、为需求相关的页面定义自己的vo,在vo中只定义前端用到的字段。而不是像第一种方式一样vo中一层一层的嵌套model。然后使用sql语句进行表关联,查询用到的字段。
3、map作为结果集来接收,这个时候要使用到一个属性resultMap,然后配合resultMap标签使用。sql语句中resultMap属性的参数,作为resultMap标签的id属性值,返回的真正类型用实体类全限定名。
4、MyBatis对自动的给把对应的值赋给resultType所指定对象的属性。②当提供的返回类型是resultMap时,因为Map不能很好表示领域模型,就需要自己再进一步的把它转化为对应的对象,这常常在复杂查询中很有作用。