如果在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);
}