当前位置: 首页 > news >正文

芜湖经济开发区网站网址模板建站

芜湖经济开发区网站,网址模板建站,中国顶尖服装设计师,wordpress 地址 .html背景 使用pageHelper时,发现分页数据异常,经过排查发现是resultMap 的问题。 resultMap介绍 在使用mybatis时,我们经常会使用在xml文件中编写一些复杂的sql语句,例如多表的join,在映射实体类时,又会使用…

背景

使用pageHelper时,发现分页数据异常,经过排查发现是resultMap 的问题。

resultMap介绍

在使用mybatis时,我们经常会使用在xml文件中编写一些复杂的sql语句,例如多表的join,在映射实体类时,又会使用到resultMap,将查询的数据库字段与实体类字段进行映射对照。

resultMap 元素是 MyBatis 中最重要最强大的元素。它可以让你从 90% 的 JDBC ResultSets 数据提取代码中解放出来,并在一些情形下允许你进行一些 JDBC 不支持的操作。实际上,在为一些比如连接的复杂语句编写映射代码的时候,一份 resultMap 能够代替实现同等功能的数千行代码。ResultMap 的设计思想是,对简单的语句做到零配置,对于复杂一点的语句,只需要描述语句之间的关系就行了。

举例

当我们编写了一个非常复杂的resultMap时,例如如下。

<!-- 非常复杂的结果映射 -->
<resultMap id="detailedBlogResultMap" type="Blog"><constructor><idArg column="blog_id" javaType="int"/></constructor><result property="title" column="blog_title"/><association property="author" javaType="Author"><id property="id" column="author_id"/><result property="username" column="author_username"/><result property="password" column="author_password"/><result property="email" column="author_email"/><result property="bio" column="author_bio"/><result property="favouriteSection" column="author_favourite_section"/></association><collection property="posts" ofType="Post"><id property="id" column="post_id"/><result property="subject" column="post_subject"/><association property="author" javaType="Author"/><collection property="comments" ofType="Comment"><id property="id" column="comment_id"/></collection><collection property="tags" ofType="Tag" ><id property="id" column="tag_id"/></collection><discriminator javaType="int" column="draft"><case value="1" resultType="DraftPost"/></discriminator></collection>
</resultMap>

请把你的目光聚集到collection标签上,对应Java 实体类属性为List posts;
有两张表 blog 和 post, 一对多的关系。
一个blog 博客,可以用多篇post文章。
我们查询博客以及文章,并且装配到统一个实体类中。

select blog.*,post.title,post.status from  blog left join post using(post_id);

假设查询到5条数据,两个博客,分别对应的1、4篇文章。那么被resultMap映射过会得到一个拥有两个元素的集合,文章数据被封装到对应的集合属性中。

但是如果我们在sql最后加入 limi 2, 这样查到的分页数据就是不准确的了。
查出来还是两个元素的集合,但是第二个元素的posts 属性却只有一篇文章,和我们预期严重不符合
会出现各种情况,posts属性数据不完整,或者是其他数据不正确的情况。

结论

所以当我们需要使用resultMap + collection来进行复杂映射时,慎重使用 limit 关键字,以及一些插件(pageHelper)

http://www.yayakq.cn/news/756938/

相关文章:

  • 网站开发工程师需要会写什么网站服务器关闭
  • 上海网站制作公司报价太平鸟品牌门户网站建设
  • 西安微信网站电商素材网站
  • 鞍山商城网站建设单页网站做cpa
  • 深圳网站开发公wordpress做小程序商城
  • 网站建设怎么进后台上网站乱码
  • 网站建设项目文档没有域名的网站需要备案吗
  • 网站打开的速度慢网站升级维护中页面
  • 如何给网站做下载附件网站网站开发建设
  • 拍卖网站咋做公司信息化网站建设实施方案
  • 兰州网站开发在哪里网站建设学
  • 中机建设一公司网站wordpress添加new
  • 宜兴宜兴建设局网站wordpress 文章底部作者
  • 网站建设从零到精通.pdf微信企业网站 源码
  • 中国建设银行安徽省 招聘信息网站建设公司网站的原则
  • 建网站的公司深圳com域名注册多少钱
  • 发展速度迅猛 具有丰富的网站建设经验网页设计入门案例
  • dw做网站导航视频投票网站怎么做的
  • 保山公司网站建设长沙住房和城乡建设部网站
  • 常州哪里做网站便宜高端网站设计
  • 平台推广网站wordpress ajax 提交表单
  • 盈利型网站网站建设服务合同印花税
  • wordpress站做app短链接在线生成器免费版
  • 做我女朋友网站做mla的网站
  • 网站正在紧急建设中做网站带来好处
  • 企业网站开发培训学做漂亮早餐的网站
  • 网站建设开发公司地址wordpress 在线编辑
  • wordpress ios shared网站优化 济南
  • intitle 做网站网页建站素材模板
  • 成都网站开发公司做好网站优化的方法有哪些?