列表及分页
1.index.jsp(请求)
......
<a href="emps/1">展示员工信息</a>
......
2.PageUtil.java
package com.atguigu.ssm.util;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import com.atguigu.ssm.bean.Emp;
import com.github.pagehelper.PageInfo;
/**
* 首页 上一页 1 2 3 4 5 下一页 末页
*/
public class PageUtil {
public static String getPageInfo(PageInfo<?> pageInfo, HttpServletRequest request){
String path = request.getContextPath() + "/";
StringBuilder builder = new StringBuilder();
//拼接首页
builder.append("<a href='"+path+"emps/1'>首页</a>");
builder.append(" ");
//拼接上一页
if(pageInfo.isHasPreviousPage()){
builder.append("<a href='"+path+"emps/"+pageInfo.getPrePage()+"'>上一页 </a>");
builder.append(" ");
}else{
builder.append("上一页");
builder.append(" ");
}
//拼接页码
int[] nums = pageInfo.getNavigatepageNums();
for(int i : nums){
if(i == pageInfo.getPageNum()){
builder.append("<a style='color:red;' href='"+path+"emps/"+i+"'>"+i+"</a>");
builder.append(" ");
}else{
builder.append("<a href='"+path+"emps/"+i+"'>"+i+"</a>");
builder.append(" ");
}
}
//拼接下一页
if(pageInfo.isHasNextPage()){
builder.append("<a href='"+path+"emps/"+pageInfo.getNextPage()+"'>下一页</a>");
builder.append(" ");
}else{
builder.append("下一页");
builder.append(" ");
}
//拼接尾页
builder.append("<a href='"+path+"emps/"+pageInfo.getPages()+"'>尾页</a>");
builder.append(" ");
return builder.toString();
}
}
3.EmpController.java
package com.atguigu.ssm.controller;
import java.util.List;
import java.util.Map;
import javax.servlet.http.HttpServletRequest;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.PathVariable;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestMethod;
import com.atguigu.ssm.bean.Emp;
import com.atguigu.ssm.service.EmpService;
import com.atguigu.ssm.util.PageUtil;
import com.github.pagehelper.PageHelper;
import com.github.pagehelper.PageInfo;
@Controller
public class EmpController {
@Autowired
private EmpService service;
@RequestMapping(value="/emps/{pageNum}", method=RequestMethod.GET)
public String getAllEmp(Map<String, Object> map, @PathVariable("pageNum")Integer pageNum, HttpServletRequest request){
PageHelper.startPage(pageNum, 1);
List<Emp> empList = service.getAllEmp();
PageInfo<Emp> pageInfo = new PageInfo<>(empList, 5);
String page = PageUtil.getPageInfo(pageInfo, request);
map.put("empList", empList);
map.put("page", page);
return "list";
}
}
4.EmpService(Service接口)
package com.atguigu.ssm.service;
import java.util.List;
import com.atguigu.ssm.bean.Emp;
public interface EmpService {
List<Emp> getAllEmp();
Emp getEmpByEid(String eid);
void updateEmp(Emp emp);
}
5.EmpServiceImpl.java(Service实现类)
package com.atguigu.ssm.service.impl;
import java.util.List;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import com.atguigu.ssm.bean.Emp;
import com.atguigu.ssm.mapper.EmpMapper;
import com.atguigu.ssm.service.EmpService;
@Service
public class EmpServiceImpl implements EmpService{
@Autowired
private EmpMapper mapper;
@Override
public List<Emp> getAllEmp() {
// TODO Auto-generated method stub
return mapper.getAllEmp();
}
@Override
public Emp getEmpByEid(String eid) {
// TODO Auto-generated method stub
return mapper.getEmpByEid(eid);
}
@Override
public void updateEmp(Emp emp) {
// TODO Auto-generated method stub
mapper.updateEmp(emp);
}
}
6.Emp.java(Emp Bean)
package com.atguigu.ssm.bean;
public class Dept {
private Integer did;
private String dname;
public Integer getDid() {
return did;
}
public void setDid(Integer did) {
this.did = did;
}
public String getDname() {
return dname;
}
public void setDname(String dname) {
this.dname = dname;
}
}
7.Dept.java(Dept Bean)
package com.atguigu.ssm.bean;
public class Emp {
private Integer eid;
private String ename;
private Integer age;
private String sex;
private Dept dept;
public Integer getEid() {
return eid;
}
public void setEid(Integer eid) {
this.eid = eid;
}
public String getEname() {
return ename;
}
public void setEname(String ename) {
this.ename = ename;
}
public Integer getAge() {
return age;
}
public void setAge(Integer age) {
this.age = age;
}
public String getSex() {
return sex;
}
public void setSex(String sex) {
this.sex = sex;
}
public Dept getDept() {
return dept;
}
public void setDept(Dept dept) {
this.dept = dept;
}
}
8.EmpMapper.java(Emp Mapper接口)
package com.atguigu.ssm.mapper;
import java.util.List;
import com.atguigu.ssm.bean.Emp;
public interface EmpMapper {
//获取所有的员工信息
List<Emp> getAllEmp();
//根据eid获取员工信息
Emp getEmpByEid(String eid);
//修改员工信息
void updateEmp(Emp emp);
}
9.DeptMapper.java(Dept Mapper接口)
package com.atguigu.ssm.mapper;
import java.util.List;
import com.atguigu.ssm.bean.Dept;
public interface DeptMapper {
//获取所有的部门信息
List<Dept> getAllDept();
}
10.EmpMapper.xml(Emp映射文件)
<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE mapper
PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
"http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="com.atguigu.ssm.mapper.EmpMapper">
<!--
//获取所有的员工信息
List<Emp> getAllEmp();
-->
<resultMap type="Emp" id="empMap">
<id column="eid" property="eid" />
<result column="ename" property="ename"/>
<result column="age" property="age"/>
<result column="sex" property="sex"/>
<association property="dept" javaType="Dept">
<id column="did" property="did"/>
<result column="dname" property="dname"/>
</association>
</resultMap>
<select id="getAllEmp" resultMap="empMap">
select
e.eid,e.ename,e.age,e.sex,d.did,d.dname
from emp e
left join
dept d
on
e.did = d.did
</select>
<!--
//根据eid获取员工信息
Emp getEmpByEid(String eid);
-->
<select id="getEmpByEid" resultMap="empMap">
select
e.eid,e.ename,e.age,e.sex,d.did,d.dname
from emp e
left join
dept d
on
e.did = d.did
where e.eid = #{eid}
</select>
<!--
//修改员工信息
void updateEmp(Emp emp);
-->
<update id="updateEmp">
update emp set
ename = #{ename},
age = #{age},
sex = #{sex},
did = #{dept.did}
where eid = #{eid}
</update>
</mapper>
11.DeptMapper.xml(Dept映射文件)
<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE mapper
PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
"http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="com.atguigu.ssm.mapper.DeptMapper">
<!--
//获取所有的部门信息
List<Dept> getAllDept();
-->
<select id="getAllDept" resultType="Dept">
select did,dname from dept
</select>
</mapper>
结果展示