1. 程式人生 > >mybatis的實現泛型查詢資料

mybatis的實現泛型查詢資料

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>