如何在MyBatis中返回多個select查詢?例如,我想返回20個用戶的列表,即用戶總數,例如1000.在下面的示例中,我使用SQL_CALC_FOUND_ROWS在LIMIT應用之前獲取總數,並使用FOUND_ROWS()檢索緩存的值第二個選擇查詢。如何將多個select查詢包裝到Mybatis中的一個查詢中?
<resultMap type="User" id="userResultMap">
<id property="id" column="u_id" />
<result property="username" column="u_username" />
<result property="password" column="u_password" />
<result property="email" column="u_email" />
</resultMap>
<select id="get" parameterType="Integer" resultType="list" resultMap="userResultMap">
SELECT
SQL_CALC_FOUND_ROWS
u.id AS u_id,
u.username AS u_username,
u.password AS u_password,
u.email AS u_email
FROM user u WHERE u.id=#{id}
<if test="startIndex != null and perPage != null">
LIMIT #{startIndex}, #{perPage}
</if>
SELECT FOUND_ROWS(), #{startIndex}, #{perPage};
</select>
我正在考慮添加另一個resultMap,並沒有找到一種方法來在Java Spring端進行多次返回。
在Java方面,它像
List<User> get(@Param("id") Integer id, @Param("startIndex") Integer startIndex,
@Param("perPage") Integer perPage);
這不會發生在MyBatis中。你要申請什麼邏輯你必須運行2選擇查詢? – Akhil 2014-09-29 20:29:59
如果只有一次選擇就可以完成,那就好多了。在我的情況下,可以在1選擇完成嗎? – 2014-09-29 20:34:23
爲什麼你不能有2個不同的