欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  IT编程

mybatis返回的map结果如何设置有序

程序员文章站 2022-06-17 14:34:41
目录mybatis返回的map结果设置有序mybatis中查询的结果有序展示1、分析为啥结果是乱序2、修改补充mybatis返回的map结果设置有序mybatis返回的map结果设置有序(与查询的域顺...

mybatis返回的map结果设置有序

mybatis返回的map结果设置有序(与查询的域顺序一致)

<select id="exoprtgoods" resulttype="java.util.hashmap">

这样的情况下是无排序的

想要按着查询的顺序来的话

换成

<select id="exoprtgoods" resulttype="java.util.linkedhashmap">

mybatis中查询的结果有序展示

如何把mybatis中sql查询的结果按照自己定义的resultmap有序展示?

1、分析为啥结果是乱序

先看下图:

 第一张为select语句,resulttype是本项目封装的一个类

mybatis返回的map结果如何设置有序

第二张为resultmap语句,type也是本项目封装的一个类

mybatis返回的map结果如何设置有序

 第三张是本项目封装的一个类,可以看到继承了hashmap

mybatis返回的map结果如何设置有序

通过上图可以分析出,hashmap存取数据大多是无序的,那么关键点找出来了。

要想查询出来的结果有序,替换hashmap为linkedhashmap

2、修改

因为pagedata本项目封装类其他地方也使用到了,因此这里只更改xml里面的

  • 更改resulttype为 java.util.linkedhashmap
  • 更改typeype为 java.util.linkedhashmap

mybatis返回的map结果如何设置有序

mybatis返回的map结果如何设置有序

补充

hashmap:

  • hashmap是一个最常用的map,它根据键的hashcode 值存储数据,根据键可以直接获取它的值,具有很快的访问速度。
  • hashmap最多只允许一条记录的键为null;
  • 允许多条记录的值为 null;
  • hashmap不支持线程的同步,即任一时刻可以有多个线程同时写hashmap;
  • 可能会导致数据的不一致。

linkedhashmap:

linkedhashmap也是一个hashmap,但是内部维持了一个双向链表,可以保持顺序

以上为个人经验,希望能给大家一个参考,也希望大家多多支持。