Jsp+Servlet+MyBatis完成分页查询
2016-06-17 16:37
288 查看
相应代码已经上传到csdn
http://download.csdn.net/detail/japanstudylang/9552720
1.建立如下图的结构
2.创建JSP文件
3.创建Servlet文件
4.修改MyBatis里面的映射文件
5.web.xml
http://download.csdn.net/detail/japanstudylang/9552720
1.建立如下图的结构
2.创建JSP文件
<%@ page language="java" import="java.util.*" pageEncoding="utf-8"%> <%@ taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c"%> <% String path = request.getContextPath(); String basePath = request.getScheme() + "://" + request.getServerName() + ":" + request.getServerPort() + path + "/"; %> <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"> <html> <head> <base href="<%=basePath%>"> <title>My JSP 'test05.jsp' starting page</title> <meta http-equiv="pragma" content="no-cache"> <meta http-equiv="cache-control" content="no-cache"> <meta http-equiv="expires" content="0"> <meta http-equiv="keywords" content="keyword1,keyword2,keyword3"> <meta http-equiv="description" content="This is my page"> <!-- <link rel="stylesheet" type="text/css" href="styles.css"> --> </head> <body> <center> <table border="1"> <tr bgcolor="#ff0000"> <td>序号</td> <td>姓名</td> <td>年龄</td> <td></td> <td></td> </tr> <c:forEach items="${students}" var="a" varStatus="status"> <tr bgcolor="${status.index%2==0?'#ff66ff':'#77eedd' }"> <td>${a.id}</td> <td>${a.name}</td> <td>${a.age}</td> <td><a href="MyModifyServlet?id=${a.id}">编辑</a></td> <td><a href="MyDeleteServlet?id=${a.id}">删除</a></td> </tr> </c:forEach> <tr> <td colspan="5"> <form action="StudentServlet"> 转到:<input type="text" name="page" value="${currentPage }" style="width: 50px;background-color: aqua;">页 总页数:${sumPage} 当前页:${currentPage} <input type="submit" value="确定"> </form> </td> </tr> </table> </center> </body> </html>
3.创建Servlet文件
package com.yw.servlet; import java.io.IOException; import java.io.InputStream; import java.io.PrintWriter; import java.util.ArrayList; import java.util.List; import javax.servlet.ServletException; import javax.servlet.http.HttpServlet; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; import org.apache.ibatis.io.Resources; import org.apache.ibatis.session.SqlSession; import org.apache.ibatis.session.SqlSessionFactory; import org.apache.ibatis.session.SqlSessionFactoryBuilder; import com.yw.test12.Condition; public class StudentServlet extends HttpServlet { /** * The doGet method of the servlet. <br> * * This method is called when a form has its tag value method equals to get. * * @param request * the request send by the client to the server * @param response * the response send by the server to the client * @throws ServletException * if an error occurred * @throws IOException * if an error occurred */ public void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { doPost(request, response); } /** * The doPost method of the servlet. <br> * * This method is called when a form has its tag value method equals to post. * * @param request * the request send by the client to the server * @param response * the response send by the server to the client * @throws ServletException * if an error occurred * @throws IOException * if an error occurred */ public void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { response.setCharacterEncoding("utf-8"); String spage = request.getParameter("page"); System.out.println("spage=" + spage); int page = 1; if (spage != null) { try { page = Integer.parseInt(spage); if(page<1) { throw new Exception(); } } catch (Exception e) { request.setAttribute("error", "page不合法"); request.getRequestDispatcher("student.jsp").forward(request, response); } } String resource = "com/yw/test12/mybatis-config.xml"; InputStream inputStream = Resources.getResourceAsStream(resource); SqlSessionFactory sqlSessionFactory = new SqlSessionFactoryBuilder().build(inputStream); SqlSession session = sqlSessionFactory.openSession(false); try { System.out.println("=====动态SQL======"); Condition s1 = new Condition(); // s1.setName("%a%"); // s1.setName(""); s1.setStart((page - 1) * 3);// ///////////// s1.setCount(3); List user = session.selectList("com.yw.test12.StudentMapper.findStudent", s1); System.out.println(user); // ArrayList s=(ArrayList)db.query("select * from user limit "+ (page-1)*3+",3"); System.out.println("s=" + user); request.setAttribute("students", user); // 数据库中的总记录数 List user2 = session.selectList("com.yw.test12.StudentMapper.findAllStudent"); int sumNumber = user2.size(); System.out.println("user2=" + user2); // 计算总页数 int sumPage = sumNumber % 3 == 0 ? sumNumber / 3 : sumNumber / 3 + 1; System.out.println("sumPage=" + sumPage); System.out.println("page=" + page); request.setAttribute("sumPage", sumPage); request.setAttribute("currentPage", page); request.getRequestDispatcher("student.jsp").forward(request, response); } finally { session.close(); } } }
4.修改MyBatis里面的映射文件
<?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.yw.test12.StudentMapper"> <select id="findStudent" resultType="com.yw.test12.Student" parameterType="com.yw.test12.Condition"> SELECT * FROM user <!-- <if test="name !=null or name !='' " > where name like #{name} </if> --> limit #{start},#{count} </select> <select id="findAllStudent" resultType="com.yw.test12.Student"> SELECT * FROM user </select> </mapper>
5.web.xml
<?xml version="1.0" encoding="UTF-8"?> <web-app version="3.0" xmlns="http://java.sun.com/xml/ns/javaee" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_3_0.xsd"> <servlet> <description>This is the description of my J2EE component</description> <display-name>This is the display name of my J2EE component</display-name> <servlet-name>StudentServlet</servlet-name> <servlet-class>com.yw.servlet.StudentServlet</servlet-class> </servlet> <servlet-mapping> <servlet-name>StudentServlet</servlet-name> <url-pattern>/StudentServlet</url-pattern> </servlet-mapping> </web-app>
相关文章推荐
- JavaScript正则表达式
- js实现鼠标悬浮切换 setTab 代码实现
- BZOJ1443: [JSOI2009]游戏Game
- 去掉shiro登录时url里的JSESSIONID
- 求解!!关于ajax传值却自动打开浏览器下载的问题
- 数组与字符串的相互转化 Js
- Javascript 中 atob 方法解码中文字符乱码问题
- 在jsp中引用其他的jsp页面的问题
- FastJSON 浅显透析
- PB9.0对使用js的encodeuri
- JavaScript获取当前url根目录(路径)
- C#读取Json文件出现乱码解决方案
- Javascript函数初探
- EJS 是什么 ,怎么用,以及优点
- JS实现的自定义显示加载等待图片插件(loading.gif)
- javaScript 对象
- js报错 :TypeError: yanzhengma is not a function
- JSON入门学习
- js中常用的一些事件总结
- Extjs5.x grid row 背景色修改