如何在MyBatis中返回多个选择查询?例如,我想返回一个包含20个用户的列表,即用户总数,比如1000.在下面的示例中,我使用SQL_CALC_FOUND_ROWS获取LIMIT应用之前的总数,并使用FOUND_ROWS()来检索缓存中的值第二个选择查询。
<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);
答案 0 :(得分:-2)
您使用了2个不同的<select>
标记。 1表示计数,其他表示用户列表。要返回计数值,您可以使用以下内容:
<select id="getUsersCount" parameterType="map" resultType="hashmap"
SELECT COUNT(*) USERS_COUNT FROM USER
</select>
在Java代码中,您将获得USERS_COUNT值。