SSM-Project-Day04-用户管理-分页 注意:如果在dao中传参用了@param(“xxx”),那么在mapper中#{xxx.字段名}

如果在dao中传参用了@param(“xxx”),那么在mapper中#{xxx.字段名}

预备工作

一、页面-新建Controller

@Controller
@RequestMapping("/user/")
public class SysUserController {

//    绑定页面
    @RequestMapping("doUserListUI")
    public String doUserListUI(){
        return "/sys/user_list";
    }
}
 doLoadUI("load-user-id","role/doUserListUI");

在这里插入图片描述

二、关联分析

在这里插入图片描述
关联关系查询
salt:md5盐值加密。

三、添加pom组件

<dependency>
		<groupId>org.apache.shiro</groupId>
		<artifactId>shiro-spring</artifactId>
		<version>1.3.2</version>
	</dependency>

四、实体[user和result]

public class SysUser implements Serializable {
    private static final long serialVersionUID = -6991614329695457142L;

    private Integer id;
    private String username;
    private String password;
    private String salt;//盐值
    private String email;
    private String mobile;
    private Integer valid=1;
    private Integer deptId;
    private Date createdTime;
    private Date modifiedTime;
    private String createdUser;
    private String modifiedUser;

    public Integer getId() {
        return id;
    }

    public void setId(Integer id) {
        this.id = id;
    }

    public String getUsername() {
        return username;
    }

    public void setUsername(String username) {
        this.username = username;
    }

    public String getPassword() {
        return password;
    }

    public void setPassword(String password) {
        this.password = password;
    }

    public String getSalt() {
        return salt;
    }

    public void setSalt(String salt) {
        this.salt = salt;
    }

    public String getEmail() {
        return email;
    }

    public void setEmail(String email) {
        this.email = email;
    }

    public String getMobile() {
        return mobile;
    }

    public void setMobile(String mobile) {
        this.mobile = mobile;
    }

    public Integer getValid() {
        return valid;
    }

    public void setValid(Integer valid) {
        this.valid = valid;
    }

    public Integer getDeptId() {
        return deptId;
    }

    public void setDeptId(Integer deptId) {
        this.deptId = deptId;
    }

    public Date getCreatedTime() {
        return createdTime;
    }

    public void setCreatedTime(Date createdTime) {
        this.createdTime = createdTime;
    }

    public Date getModifiedTime() {
        return modifiedTime;
    }

    public void setModifiedTime(Date modifiedTime) {
        this.modifiedTime = modifiedTime;
    }

    public String getCreatedUser() {
        return createdUser;
    }

    public void setCreatedUser(String createdUser) {
        this.createdUser = createdUser;
    }

    public String getModifiedUser() {
        return modifiedUser;
    }

    public void setModifiedUser(String modifiedUser) {
        this.modifiedUser = modifiedUser;
    }
}

public class SysUserDeptResult implements Serializable {

    private static final long serialVersionUID = -1109392060837549613L;

    private Integer id;
    private String username;
    private String password;//md5
    private String salt;
    private String email;
    private String mobile;
    private Integer valid=1;
    private SysDept sysDept;
    private Date createdTime;
    private Date modifiedTime;
    private String createdUser;
    private String modifiedUser;

    public Integer getId() {
        return id;
    }

    public void setId(Integer id) {
        this.id = id;
    }

    public String getUsername() {
        return username;
    }

    public void setUsername(String username) {
        this.username = username;
    }

    public String getPassword() {
        return password;
    }

    public void setPassword(String password) {
        this.password = password;
    }

    public String getSalt() {
        return salt;
    }

    public void setSalt(String salt) {
        this.salt = salt;
    }

    public String getEmail() {
        return email;
    }

    public void setEmail(String email) {
        this.email = email;
    }

    public String getMobile() {
        return mobile;
    }

    public void setMobile(String mobile) {
        this.mobile = mobile;
    }

    public Integer getValid() {
        return valid;
    }

    public void setValid(Integer valid) {
        this.valid = valid;
    }

    public SysDept getSysDept() {
        return sysDept;
    }

    public void setSysDept(SysDept sysDept) {
        this.sysDept = sysDept;
    }

    public Date getCreatedTime() {
        return createdTime;
    }

    public void setCreatedTime(Date createdTime) {
        this.createdTime = createdTime;
    }

    public Date getModifiedTime() {
        return modifiedTime;
    }

    public void setModifiedTime(Date modifiedTime) {
        this.modifiedTime = modifiedTime;
    }

    public String getCreatedUser() {
        return createdUser;
    }

    public void setCreatedUser(String createdUser) {
        this.createdUser = createdUser;
    }

    public String getModifiedUser() {
        return modifiedUser;
    }

    public void setModifiedUser(String modifiedUser) {
        this.modifiedUser = modifiedUser;
    }
}

一、Dao

//  分页查询  
    List<SysUserDeptResult> findPageObjects(
            @Param("username") String username,
            @Param("startIndex")Integer startIndex,
            @Param("pageSize")Integer pageSize);
//分页总记录数
    int getRowCount(@Param("username") String username);

二、Mapper

deptMapper

<select id="findById"
            resultType="com.jt.sys.entity.SysDept">
         select *
         from sys_depts
         where id=#{deptId}
    </select>

usermapper

<!--分页查询-->
    <resultMap id="userDeptResult" type="com.jt.sys.vo.SysUserDeptResult">
        <!--关联映射:直接量类型的属性自动映射-->
        <association property="sysDept"
                     column="deptId"
                    select="com.jt.sys.dao.SysDeptDao.findById"/>
    </resultMap>
    <select id="findPageObjects" resultMap="SysUserDeptResult">
        select * from sys_users
        <include refid="queryWhereId"/>
        order by createTime desc
        limit #{startTime},#{pageSize}
    </select>
    <select id="getRowCount" resultType="int">
        select count(*)
        from sys_users
        <include refid="queryWhereId"/>
    </select>
   <sql id="queryWhereId">
       <where>
           <if test="username==null and username!=''">
               username like concat("%",#{username},"%");
           </if>
       </where>
   </sql>

三、Service

public interface SysUserService {
    PageObject<SysUserDeptResult> findPageObjects(String username,
                                                  Integer pageCurrent
    );
}
@Service
public class SysUserServiceImpl implements SysUserService {

    @Autowired
    private SysUserDao sysUserDao;


    @Override
    public PageObject<SysUserDeptResult> findPageObjects(String username, Integer pageCurrent) {
        //1.数据合法性验证
        if(pageCurrent==null||pageCurrent<=0)
            throw new ServiceException("参数不合法");
//2.依据条件获取总记录数
        int rowCount=sysUserDao.getRowCount(username);
        if(rowCount==0)
            throw new ServiceException("记录不存在");
        //3.计算startIndex的值
        int pageSize=3;
        int startIndex=(pageCurrent-1)*pageSize;
        //4.依据条件获取当前页数据
        List<SysUserDeptResult> records=
                sysUserDao.findPageObjects(
                        username, startIndex, pageSize);
        //5.封装数据
        PageObject<SysUserDeptResult> pageObject=new PageObject<>();
        pageObject.setPageCurrent(pageCurrent);
        pageObject.setRowCount(rowCount);
        pageObject.setPageSize(pageSize);
        pageObject.setRecords(records);
        return pageObject;

    }
}

四、Controller

 @Autowired
    private SysUserService sysUserService;

    @RequestMapping("doFindPageObjects")
    @ResponseBody
    public JsonResult doFindPageObjects(
            String username,Integer pageCurrent){
        PageObject<SysUserDeptResult> pageObject=
                sysUserService.findPageObjects(username,
                        pageCurrent);
        return new JsonResult(pageObject);
    }

验证一下吧:

在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值