mybatis的實現泛型查詢資料
阿新 • • 發佈:2018-12-24
List<User> selectUserListByType(Map map);
以這個方法為例:其中引數map的鍵裡面儲存的是根據什麼型別程式碼查詢假設三個值(100,101,102),而值是list型別的陣列,或者一些String,那麼相對應的xml的檔案實現的話就類似下面的這些程式碼(這個只是給我做記憶的不為了其他):
<?xml version="1.0" encoding="UTF-8" ?> <!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd" > <mapper namespace="com.mapper.UserMapper">
<!--其他的型別UserResultMap以及sql這些省略--> <select id="selectUserListByType" resultMap="UserResultMap" parameterType="Map"> SELECT <include refid="Base_Column_List" /> FROM account,profile <where> <!-- 下面if判斷中的type為查詢的型別, 其中100為根據id集合查詢, 101為根據profile的name屬性模糊查詢, 102為根據根據手機號(account的username屬性,profile的phone屬性)查詢, 目前需求只是單個手機號,不過也適用 --> <if test="type==100"> account.id IN ( <foreach item="p" collection="params" separator=","> #{p} </foreach> ) </if> <if test="type==101"> profile.name like '%${params}%' </if> <if test="type==102"> account.username IN ( <foreach item="p" collection="params" separator=","> #{p} </foreach> ) </if> </where> AND account.id=profile.uid; </select>
</mapper>