1、DAO层接口
List<Teacher> selectAllTeachers(@Param(value="begin")Integer begin,
@Param(value="end")Integer end);
Integer selectTeachersNumber();
2、Mapper文件配置
<resultMap type="teacher" id="teacherMap">
<id column="teaId" property="teacherId"/>
<result column="teaName" property="teacherName"/>
<association property="academy" javaType="academy">
<id column="academy_id" property="academyId"/>
<result column="acaName" property="academyName"/>
</association>
<collection ofType="course" property="courses">
<id column="course_id" property="courseId"/>
<result column="couName" property="courseName"/>
</collection>
</resultMap>
<select id="selectAllTeachers" resultMap="teacherMap">
select tea.teacher_id as teaId,tea.teacher_name as teaName,
aca.academy_name as acaName,cou.course_name as couName
from (select t.*,rownum rn from interact_teacher t)
tea join interact_academy aca
on tea.academy_id=aca.academy_id
join interact_course cou
on cou.teacher_id=tea.teacher_id
where rn between #{begin} and #{end} order by tea.teacher_id
</select>
<select id="selectTeachersNumber" resultType="Integer">
select count(*) from interact_teacher
</select>
3、Service层接口
List<Teacher> queryAllTeachers(Integer teacherCurPage);
Integer teacherTotalPage();
4、Service接口实现
@Autowired
private TeacherDao teacherDao;
@Override
@Transactional(propagation=Propagation.SUPPORTS)
public List<Teacher> queryAllTeachers(Integer teacherCurPage) {
Integer begin = (teacherCurPage-1)*4+1;
Integer end = 4*teacherCurPage;
List<Teacher> selectAllTeachers = teacherDao.selectAllTeachers(begin,end);
return selectAllTeachers;
}
@Override
@Transactional(propagation=Propagation.SUPPORTS)
public Integer teacherTotalPage() {
Integer count = teacherDao.selectTeachersNumber();
Integer totalPage = null;
if(count%4==0){
totalPage = count/4;
}else{
totalPage = count/4+1;
}
return totalPage;
}
5、Controller
@Autowired
private TeacherService tea;
@RequestMapping("/queryAllTeachers")
public String queryAllTeachers(Integer teacherCurPage,Integer studentId,Model model){
if(teacherCurPage == null){
teacherCurPage = 1;
}
List<Teacher> queryAllTeachers = tea.queryAllTeachers(teacherCurPage);
Integer teacherTotalPage = tea.teacherTotalPage();
model.addAttribute("teachers", queryAllTeachers);
model.addAttribute("studentId", studentId);
model.addAttribute("teacherCurPage", teacherCurPage);
model.addAttribute("teacherTotalPage", teacherTotalPage);
return "student/queryTeachers";
}
6、jsp
<div class="row">
<div class="pagination" style="text-align: center;">
<ul>
<li>
<a
<c:if test="${teacherCurPage==1}">
style="color: grey" href="javascript:void(0)"
</c:if>
<c:if test="${teacherCurPage>1}">
href="${ pageContext.request.contextPath }/student/queryAllTeachers.do?teacherCurPage=${teacherCurPage-1}&studentId=${studentId }"
</c:if>
>上一页</a>
</li>
<li>
<c:forEach var="i" begin="1" end="${teacherTotalPage }">
<a
<c:if test="${i==teacherCurPage }">
style="color: grey" href="javascript:void(0)"
</c:if>
<c:if test="${i!=teacherCurPage }">
href="${ pageContext.request.contextPath }/student/queryAllTeachers.do?teacherCurPage=${i}&studentId=${studentId }"
</c:if>
>${i}</a>
</c:forEach>
</li>
<li>
<a
<c:if test="${teacherCurPage==teacherTotalPage}">
style="color: grey" href="javascript:void(0)"
</c:if>
<c:if test="${teacherCurPage<teacherTotalPage}">
href="${ pageContext.request.contextPath }/student/queryAllTeachers.do?teacherCurPage=${teacherCurPage+1}&studentId=${studentId }"
</c:if>
>下一页</a>
</li>
</ul>
</div>
</div>