原文地址:https://www.cnblogs.com/wuyun-blog/p/5769096.html
需求:
1.直接執行前端傳來的任何sql語句,parameterType="String",
2.對於任何sql語句,其返回值類型無法用resultMap在xml文件里配置或者返回具體的bean類型,因此設置resultType="java.util.Map",但是Map並不保證存入取出順序一致,
因此設置resultType="java.util.LinkedHashMap",為保證查詢的字段值有序(存入與取出順序一致)所以采用LinkedHashMap。
3.當返回值為LinkedHashMap時,表中存儲的null值並不會存入Map中,因此還要在mybatis配置文件中增加如下配置:
<settings>
<setting name="callSettersOnNulls" value="true"/>
</settings>
mapper的接口方法:List<LinkedHashMap<String, Object>> superManagerSelect(String sql);
相匹配的xml文件:
<select id="superManagerSelect" parameterType="String" resultType="java.util.LinkedHashMap">
${sql}
</select>
這樣配置時,會出現:there no getter sql in java.lang.String 的異常,因此sql改成value,便不會報錯。
<select id="superSelect" parameterType="String" resultType="java.util.LinkedHashMap">
${value}
</select>