当前位置:金沙js333娱乐场 > 网络频道 > ibatis-mybatis分页问题

ibatis-mybatis分页问题

文章作者:网络频道 上传时间:2019-11-24

作者:jpr1990

配置文件:

[sql] 
<select id="listPageUser" parameterType="User" resultMap="userAndRoleResultMap"> 
        select u.user_id,u.username,u.loginname,u.password,r.role_id,r.role_name ,u.last_login 
        from tb_user u  
        left join tb_role r on u.role_id=r.role_id  
        where u.status=0  
        <if test="loginname!=null and loginname!=''"> 
            and u.loginname like "%"#{loginname}"%"  
        </if> 
        <if test="roleId!=null and roleId!=0"> 
            and u.role_id=#{roleId}  
        </if> 
        <if test="lastLoginStart!=null"> 
        and u.last_login>=#{lastLoginStart}  
        </if> 
        <if test="lastLoginEnd!=null"> 
        and u.last_login<=#{lastLoginEnd}  
        </if> 
    </select> 

这是按MYBATIS官网文档做的,这样可以实现多对多的功能,但在做分页时出了问题。

MyBatis关联查询示例:
 
[html] 
<resultMap type="UserView" id="userAndRoleViewResultMap"> 
    <id column="user_id" property="userId"/> 
    <result column="loginname" property="loginname"/> 
    <result column="username" property="username"/> 
    <result column="password" property="password"/> 
    <result column="user_rights" property="rights"/> 
    <result column="status" property="status"/> 
    <result column="last_login" property="lastLogin"/> 
    <association property="role" column="role_id" javaType="Role"> 
        <id column="role_id" property="roleId"/> 
        <result column="role_name" property="roleName"/> 
        <result column="role_rights" property="rights"/> 
    </association> 
</resultMap> 

public class User{

http://www.bkjia.com/HTML5/477421.htmlwww.bkjia.comtruehttp://www.bkjia.com/HTML5/477421.htmlTechArticleMyBatis关联查询示例: [html] resultMap type=UserView id=userAndRoleViewResultMap id column=user_id property=userId/ result column=loginname property=loginname/ result column...

<select parameterType="User" resultMap="userMap">

如果一个用户有3个角色,这样在SQL查询结果中同一个用户会有三条记录

LEFT OUTER JOIN t_user_role ur ON ur.user_id=u.user_ID

t_user和t_role通过中间表t_金沙js333娱乐场,user_role关联,多对多关系

FROM t_user u LEFT OUTER JOIN t_address a ON u.user_id=a.address_id

如果要在用户列表页面做分页时就不知道怎么处理了。

..........

}

<result column="password" property="password"/>

LEFT OUTER JOIN t_role r ON r.role_id=ur.role_id

SELECT u.user_id,u.user_name,u.password,r.role_id,r.role_name

<result column="user_name" property="userName"/>

<collection property="roles" javaType="ArrayList" ofType="Role">

private String password;

本文由金沙js333娱乐场发布于网络频道,转载请注明出处:ibatis-mybatis分页问题

关键词: