使用MyBatis遇到的一些需要记录下的问题
(1)MyBaits结果集返回Map,Map集合乱序。
xml 中的SQL
输出:
改成:
输出:
目测跟字母顺序有关:ABCDEFGHIJKLMNOPQRSTUVWXYZ
(2)需要对字段动态排序
在SQL后面添加
ORDER BY #{orderBySort}
编译后,查看发现没有排序,经排查,可能是带双引号,解析为字符串,然后排序失效。
在网上查看相关的资料,发现#{}和${}的区别:$是简单的字符串替换,#在预处理时,会把参数部分用一个占位符 ? 代替,生成的SQL会根据字段属性转换成相应的字段类型。#可以防止SQL注入攻击,$不能。
改成 $符号,排序可以使用了。一种是替换,一种是占位符。