使用MyBatis遇到的一些需要记录下的问题

(1)MyBaits结果集返回Map,Map集合乱序。

xml 中的SQL

输出:

改成:

输出:

目测跟字母顺序有关:ABCDEFGHIJKLMNOPQRSTUVWXYZ

(2)需要对字段动态排序

  在SQL后面添加  

ORDER BY #{orderBySort}

  编译后,查看发现没有排序,经排查,可能是带双引号,解析为字符串,然后排序失效。

  在网上查看相关的资料,发现#{}和${}的区别:$是简单的字符串替换,#在预处理时,会把参数部分用一个占位符 ? 代替,生成的SQL会根据字段属性转换成相应的字段类型。#可以防止SQL注入攻击,$不能。

  改成 $符号,排序可以使用了。一种是替换,一种是占位符。

猜你喜欢

转载自www.cnblogs.com/knsbyoo/p/9140333.html