Mybatis实现简单的分页,以及基本的查询修改功能
2018-01-19 18:57
981 查看
1. 项目结构
2. 数据库
3. 数据库配置文件jdbc.properties
driver=com.mysql.jdbc.Driver
url=jdbc\:mysql\://localhost\:3306/zhq?characterEncoding\=utf-8
username=root
password=root4. mybatis-config.xml配置文件
<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE configuration
PUBLIC "-//mybatis.org//DTD Config 3.0//EN"
"http://mybatis.org/dtd/mybatis-3-config.dtd">
<configuration>
<properties resource="config/jdbc.properties" />
<typeAliases>
<package name="com.zhq.entity"/>
</typeAliases>
<environments default="development">
<environment id="development">
<transactionManager type="JDBC" />
<dataSource type="POOLED">
<property name="driver" value="${driver}" />
<property name="url" value="${url}" />
<property name="username" value="${username}" />
<property name="password" value="${password}" />
</dataSource>
</environment>
</environments>
<mappers>
<package name="com.zhq.dao"/>
</mappers>
</configuration>
5. com.zhq.entity
package com.zhq.entity;
public class MembersInfo {
private int mid;
private String mname;
private String mgender;
private int mage;
private String madderess;
private String memail;
public int getMid() {
return mid;
}
public void setMid(int mid) {
this.mid = mid;
}
public String getMname() {
return mname;
}
public void setMname(String mname) {
this.mname = mname;
}
public String getMgender() {
return mgender;
}
public void setMgender(String mgender) {
this.mgender = mgender;
}
public int getMage() {
return mage;
}
public void setMage(int mage) {
this.mage = mage;
}
public String getMadderess() {
return madderess;
}
public void setMadderess(String madderess) {
this.madderess = madderess;
}
public String getMemail() {
return memail;
}
public void setMemail(String memail) {
this.memail = memail;
}
}
6. com.zhq.dao
package com.zhq.web;
import java.io.IOException;
import javax.servlet.ServletException;
import javax.servlet.annotation.WebServlet;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import com.zhq.biz.MembersInfoService;
import com.zhq.biz.MembersInfoServiceImpl;
import com.zhq.entity.MembersInfo;
import com.zhq.tools.PageUtil;
/**
* Servlet implementation class FindServlet
*/
@WebServlet("/FindServlet")
public class FindServlet extends HttpServlet {
private static final long serialVersionUID = 1L;
/**
* @see HttpServlet#HttpServlet()
*/
public FindServlet() {
super();
// TODO Auto-generated constructor stub
}
/**
* @see HttpServlet#doGet(HttpServletRequest request, HttpServletResponse response)
*/
protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
String pageIndex=request.getParameter("pageIndex");
int index=1;
if( pageIndex!=null) {
index=Integer.valueOf(pageIndex);
}
MembersInfoService ser=new MembersInfoServiceImpl();
PageUtil<MembersInfo> pageUtil=ser.find(index, 2);
request.getSession().setAttribute("pageUtil", pageUtil);
request.getRequestDispatcher("/findList.jsp").forward(request,response);
}
/**
* @see HttpServlet#doPost(HttpServletRequest request, HttpServletResponse response)
*/
protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
// TODO Auto-generated method stub
doGet(request, response);
}
}
package com.zhq.tools;
import java.util.List;
/**
* 这是一个分页工具类
* T表示一个泛型
* */
public class PageUtil<T> {
//当前页索引
private int pageIndex;
//每页数量多少
private int pageSize;
//总记录数
private int count;
//总页数
private int pageNumber;
//要分页的内容
public List<T> list;
public int getPageIndex() {
return pageIndex;
}
public void setPageIndex(int pageIndex) {
this.pageIndex = pageIndex;
}
public int getPageSize() {
return pageSize;
}
public void setPageSize(int pageSize) {
this.pageSize = pageSize;
}
public int getCount() {
return count;
}
public void setCount(int count) {
this.count = count;
}
public int getPageNumber() {
return pageNumber;
}
public void setPageNumber(int pageNumber) {
this.pageNumber = pageNumber;
}
public List<T> getList() {
return list;
}
public void setList(List<T> list) {
this.list = list;
}
}
10.页面
<%@ page language="java" contentType="text/html; charset=UTF-8"
pageEncoding="UTF-8"%>
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>Insert title here</title>
</head>
<body>
<a href="${pageContext.request.contextPath}/FindServlet">俱乐部会员信息列表</a><br>
</body>
</html>
pageEncoding="UTF-8"%>
<%@ taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c" %>
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>会员信息</title>
</head>
<body>
<h3>会员信息</h3>
<form action="${pageContext.request.contextPath}/UpdateServlet" method="post">
<table border="1">
<tr>
<td>姓名</td>
<td><input value="${membersInfo.mname}" name="mname"></td>
</tr>
<tr>
<td>性别</td>
<td>
<select name="mgender">
<c:choose>
<c:when test="${membersInfo.mgender eq '男'}">
<option value="${membersInfo.mgender}" selected>${membersInfo.mgender}</option>
<option value="女">女</option>
</c:when>
<c:otherwise>
<option value="${membersInfo.mgender}" selected>${membersInfo.mgender}</option>
<option value="男">男</option>
</c:otherwise>
</c:choose>
</select>
</td>
</tr>
<tr>
<td>年龄</td>
<td><input value="${membersInfo.mage}" name="mage"></td>
</tr>
<tr>
<td>家庭住址</td>
<td><input value="${membersInfo.madderess}" name="madderess"></td>
</tr>
<tr>
<td>Email</td>
<td><input value="${membersInfo.memail}" name="memail"></td>
</tr>
</table>
<input type="hidden" value="${membersInfo.mid}" name="mid">
<input type="submit" value="修改">
<input type="reset" value="重置">
</form>
</body>
</html>
11. 最终效果
2. 数据库
3. 数据库配置文件jdbc.properties
driver=com.mysql.jdbc.Driver
url=jdbc\:mysql\://localhost\:3306/zhq?characterEncoding\=utf-8
username=root
password=root4. mybatis-config.xml配置文件
<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE configuration
PUBLIC "-//mybatis.org//DTD Config 3.0//EN"
"http://mybatis.org/dtd/mybatis-3-config.dtd">
<configuration>
<properties resource="config/jdbc.properties" />
<typeAliases>
<package name="com.zhq.entity"/>
</typeAliases>
<environments default="development">
<environment id="development">
<transactionManager type="JDBC" />
<dataSource type="POOLED">
<property name="driver" value="${driver}" />
<property name="url" value="${url}" />
<property name="username" value="${username}" />
<property name="password" value="${password}" />
</dataSource>
</environment>
</environments>
<mappers>
<package name="com.zhq.dao"/>
</mappers>
</configuration>
5. com.zhq.entity
package com.zhq.entity;
public class MembersInfo {
private int mid;
private String mname;
private String mgender;
private int mage;
private String madderess;
private String memail;
public int getMid() {
return mid;
}
public void setMid(int mid) {
this.mid = mid;
}
public String getMname() {
return mname;
}
public void setMname(String mname) {
this.mname = mname;
}
public String getMgender() {
return mgender;
}
public void setMgender(String mgender) {
this.mgender = mgender;
}
public int getMage() {
return mage;
}
public void setMage(int mage) {
this.mage = mage;
}
public String getMadderess() {
return madderess;
}
public void setMadderess(String madderess) {
this.madderess = madderess;
}
public String getMemail() {
return memail;
}
public void setMemail(String memail) {
this.memail = memail;
}
}
6. com.zhq.dao
package com.zhq.dao; import java.util.List; import com.zhq.entity.MembersInfo; public interface MembersInfoDao { public List<MembersInfo> find(int num,int size); public MembersInfo findById(int id); public int update(MembersInfo membersInfo); public int findCount(); }
<?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.zhq.dao.MembersInfoDao"> <select id="find" resultType="MembersInfo" parameterType="int"> select * from membersInfo limit #{0},#{1} </select> <select id="findById" resultType="MembersInfo" parameterType="int"> select * from membersInfo where mid=#{Id} </select> <update id="update" parameterType="MembersInfo"> update membersInfo set mname=#{mname},mgender=#{mgender},mage=#{mage},madderess=#{madderess},memail=#{memail} where mid=#{mid} </update> <select id="findCount" parameterType="int" resultType="int"> select count(*) from membersInfo </select> </mapper>7. com.zhq.biz
package com.zhq.biz; import com.zhq.entity.MembersInfo; import com.zhq.tools.PageUtil; public interface MembersInfoService { public PageUtil<MembersInfo> find(int pageIndex,int size); public MembersInfo findById(int id); public int update(MembersInfo membersInfo); }
package com.zhq.biz; import java.util.List; import org.apache.ibatis.session.SqlSession; import com.zhq.dao.MembersInfoDao; import com.zhq.entity.MembersInfo; import com.zhq.tools.PageUtil; import com.zhq.tools.SQLSessionFactory; public class MembersInfoServiceImpl implements MembersInfoService { @Override public PageUtil<MembersInfo> find(int pageIndex, int size) { PageUtil<MembersInfo> pageUtil=new PageUtil<MembersInfo>(); List<MembersInfo> list=null; SqlSession sqlSession=null; //总记录数 int count=0; try { sqlSession= SQLSessionFactory.getSession(); MembersInfoDao dao=sqlSession.getMapper(MembersInfoDao.class); count=dao.findCount(); int num=(pageIndex-1)*size; list =dao.find(num,size); } catch (Exception e) { System.out.println(e.getMessage()); }finally { if(sqlSession!=null) { sqlSession.close(); } } //封装分页所需要的数据 pageUtil.setPageIndex(pageIndex); pageUtil.setList(list); pageUtil.setCount(count); pageUtil.setPageSize(size); pageUtil.setPageNumber((int)Math.ceil((double)count/size)); return pageUtil; } @Override public MembersInfo findById(int id) { MembersInfo membersInfo=new MembersInfo(); SqlSession sqlSession=null; try { sqlSession= SQLSessionFactory.getSession(); MembersInfoDao dao=sqlSession.getMapper(MembersInfoDao.class); membersInfo =dao.findById(id); } catch (Exception e) { System.out.println(e.getMessage()); }finally { if(sqlSession!=null) { sqlSession.close(); } } return membersInfo; } @Override public int update(MembersInfo membersInfo) { SqlSession sqlSession=null; try { sqlSession= SQLSessionFactory.getSession(); MembersInfoDao dao=sqlSession.getMapper(MembersInfoDao.class); return dao.update(membersInfo); } catch (Exception e) { System.out.println(e.getMessage()); }finally { if(sqlSession!=null) { sqlSession.commit(); sqlSession.close(); } } return 0; } }8. com.zhq.web
package com.zhq.web;
import java.io.IOException;
import javax.servlet.ServletException;
import javax.servlet.annotation.WebServlet;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import com.zhq.biz.MembersInfoService;
import com.zhq.biz.MembersInfoServiceImpl;
import com.zhq.entity.MembersInfo;
import com.zhq.tools.PageUtil;
/**
* Servlet implementation class FindServlet
*/
@WebServlet("/FindServlet")
public class FindServlet extends HttpServlet {
private static final long serialVersionUID = 1L;
/**
* @see HttpServlet#HttpServlet()
*/
public FindServlet() {
super();
// TODO Auto-generated constructor stub
}
/**
* @see HttpServlet#doGet(HttpServletRequest request, HttpServletResponse response)
*/
protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
String pageIndex=request.getParameter("pageIndex");
int index=1;
if( pageIndex!=null) {
index=Integer.valueOf(pageIndex);
}
MembersInfoService ser=new MembersInfoServiceImpl();
PageUtil<MembersInfo> pageUtil=ser.find(index, 2);
request.getSession().setAttribute("pageUtil", pageUtil);
request.getRequestDispatcher("/findList.jsp").forward(request,response);
}
/**
* @see HttpServlet#doPost(HttpServletRequest request, HttpServletResponse response)
*/
protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
// TODO Auto-generated method stub
doGet(request, response);
}
}
package com.zhq.web; import java.io.IOException; import javax.servlet.ServletException; import javax.servlet.annotation.WebServlet; import javax.servlet.http.HttpServlet; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; import com.zhq.biz.MembersInfoService; import com.zhq.biz.MembersInfoServiceImpl; import com.zhq.entity.MembersInfo; /** * Servlet implementation class FindByIdServlet */ @WebServlet("/FindByIdServlet") public class FindByIdServlet extends HttpServlet { private static final long serialVersionUID = 1L; /** * @see HttpServlet#HttpServlet() */ public FindByIdServlet() { super(); // TODO Auto-generated constructor stub } /** * @see HttpServlet#doGet(HttpServletRequest request, HttpServletResponse response) */ protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { String mid=request.getParameter("mid"); if(mid!=null) { MembersInfoService ser=new MembersInfoServiceImpl(); MembersInfo membersInfo=ser.findById(Integer.valueOf(mid)); request.getSession().setAttribute("membersInfo", membersInfo); } request.getRequestDispatcher("/findListInfo.jsp").forward(request,response); } /** * @see HttpServlet#doPost(HttpServletRequest request, HttpServletResponse response) */ protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { // TODO Auto-generated method stub doGet(request, response); } }
package com.zhq.web; import java.io.IOException; import javax.servlet.ServletException; import javax.servlet.annotation.WebServlet; import javax.servlet.http.HttpServlet; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; import com.zhq.biz.MembersInfoService; import com.zhq.biz.MembersInfoServiceImpl; import com.zhq.entity.MembersInfo; /** * Servlet implementation class UpdateServlet */ @WebServlet("/UpdateServlet") public class UpdateServlet extends HttpServlet { private static final long serialVersionUID = 1L; /** * @see HttpServlet#HttpServlet() */ public UpdateServlet() { super(); // TODO Auto-generated constructor stub } /** * @see HttpServlet#doGet(HttpServletRequest request, HttpServletResponse response) */ protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { request.setCharacterEncoding("UTF-8"); String mid=request.getParameter("mid"); String mname=request.getParameter("mname"); System.out.println("mid"+mid); System.out.println("mname"+mname); String mgender=request.getParameter("mgender"); System.out.println("mgender"+mgender); String mage=request.getParameter("mage"); String madderess=request.getParameter("madderess"); String memail=request.getParameter("memail"); MembersInfo membersInfo=new MembersInfo(); if(mid!=null&&mname!=null&&mgender!=null&&mage!=null&&madderess!=null&&madderess!=null&&memail!=null) { membersInfo.setMid(Integer.valueOf(mid)); membersInfo.setMname(mname); membersInfo.setMage(Integer.valueOf(mage)); membersInfo.setMadderess(madderess); membersInfo.setMemail(memail); membersInfo.setMgender(mgender); MembersInfoService ser=new MembersInfoServiceImpl(); ser.update(membersInfo); } request.getRequestDispatcher("/FindServlet").forward(request,response); } /** * @see HttpServlet#doPost(HttpServletRequest request, HttpServletResponse response) */ protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { // TODO Auto-generated method stub doGet(request, response); } }9. com.zhq.tools
package com.zhq.tools;
import java.util.List;
/**
* 这是一个分页工具类
* T表示一个泛型
* */
public class PageUtil<T> {
//当前页索引
private int pageIndex;
//每页数量多少
private int pageSize;
//总记录数
private int count;
//总页数
private int pageNumber;
//要分页的内容
public List<T> list;
public int getPageIndex() {
return pageIndex;
}
public void setPageIndex(int pageIndex) {
this.pageIndex = pageIndex;
}
public int getPageSize() {
return pageSize;
}
public void setPageSize(int pageSize) {
this.pageSize = pageSize;
}
public int getCount() {
return count;
}
public void setCount(int count) {
this.count = count;
}
public int getPageNumber() {
return pageNumber;
}
public void setPageNumber(int pageNumber) {
this.pageNumber = pageNumber;
}
public List<T> getList() {
return list;
}
public void setList(List<T> list) {
this.list = list;
}
}
package com.zhq.tools; import java.io.IOException; import java.io.Reader; import org.apache.ibatis.io.Resources; import org.apache.ibatis.session.SqlSession; import org.apache.ibatis.session.SqlSessionFactory; import org.apache.ibatis.session.SqlSessionFactoryBuilder; public class SQLSessionFactory { static Reader reader = null; static SqlSessionFactory sqlSessionFactory=null; private SQLSessionFactory() {} //这是一个静态语句块,用于读取主配置文件,因为主配置文件只需要读取一次。 static { try { //形成输入流 reader = Resources.getResourceAsReader("config/mybatis-config.xml"); } catch (IOException e) { System.out.println(e.getMessage()); } } //SqlSession工厂,只需要一个,所以做成单例模式 public static SqlSessionFactory getSqlSessionFactory(){ if(sqlSessionFactory == null){ synchronized (SQLSessionFactory.class) { if(sqlSessionFactory == null){ sqlSessionFactory = new SqlSessionFactoryBuilder().build(reader); } } } return sqlSessionFactory; } public static SqlSession getSession(){ //返回一个数据操作连接对象 return getSqlSessionFactory().openSession(); } }
10.页面
<%@ page language="java" contentType="text/html; charset=UTF-8"
pageEncoding="UTF-8"%>
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>Insert title here</title>
</head>
<body>
<a href="${pageContext.request.contextPath}/FindServlet">俱乐部会员信息列表</a><br>
</body>
</html>
<%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%> <%@ taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c" %> <!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd"> <html> <head> <meta http-equiv="Content-Type" content="text/html; charset=UTF-8"> <title>会员信息详情</title> </head> <body> <h2>俱乐部会员信息</h2> <table border="1"> <tr> <td>姓名</td> <td>性别</td> <td>年龄</td> <td>家庭住址</td> <td>Email</td> </tr> <c:forEach items="${pageUtil.list}" var="membersInfo"> <tr> <td><a href="${pageContext.request.contextPath}/FindByIdServlet?mid=${membersInfo.mid}">${membersInfo.mid}</a></td> <td>${membersInfo.mname}</td> <td>${membersInfo.mgender}</td> <td>${membersInfo.mage}</td> <td>${membersInfo.madderess}</td> <td>${membersInfo.memail}</td> </tr> </c:forEach> </table> <a href="${pageContext.request.contextPath}/FindServlet?pageIndex=${pageUtil.pageIndex>1?pageUtil.pageIndex-1:1}">上一页</a> <a href="${pageContext.request.contextPath}/FindServlet?pageIndex=${pageUtil.pageIndex<pageUtil.pageNumber?pageUtil.pageIndex+1:pageUtil.pageNumber}">下一页</a> </body> </html><%@ page language="java" contentType="text/html; charset=UTF-8"
pageEncoding="UTF-8"%>
<%@ taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c" %>
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>会员信息</title>
</head>
<body>
<h3>会员信息</h3>
<form action="${pageContext.request.contextPath}/UpdateServlet" method="post">
<table border="1">
<tr>
<td>姓名</td>
<td><input value="${membersInfo.mname}" name="mname"></td>
</tr>
<tr>
<td>性别</td>
<td>
<select name="mgender">
<c:choose>
<c:when test="${membersInfo.mgender eq '男'}">
<option value="${membersInfo.mgender}" selected>${membersInfo.mgender}</option>
<option value="女">女</option>
</c:when>
<c:otherwise>
<option value="${membersInfo.mgender}" selected>${membersInfo.mgender}</option>
<option value="男">男</option>
</c:otherwise>
</c:choose>
</select>
</td>
</tr>
<tr>
<td>年龄</td>
<td><input value="${membersInfo.mage}" name="mage"></td>
</tr>
<tr>
<td>家庭住址</td>
<td><input value="${membersInfo.madderess}" name="madderess"></td>
</tr>
<tr>
<td>Email</td>
<td><input value="${membersInfo.memail}" name="memail"></td>
</tr>
</table>
<input type="hidden" value="${membersInfo.mid}" name="mid">
<input type="submit" value="修改">
<input type="reset" value="重置">
</form>
</body>
</html>
11. 最终效果
相关文章推荐
- MyBatis简单的增删改查以及简单的分页查询实现
- MyBatis简单的增删改查以及简单的分页查询实现
- 分页查询简单实现(Freemarker+SpringMVC+Mybatis)
- 双向循环链表简单的插入、删除、修改以及查找功能的实现
- 原生PHP实现数据筛选以及简单分页功能
- 双向循环链表简单的插入、删除、修改以及查找功能的实现
- Servlet+Javabean+Html实现简单的查询.删除.修改.添加四个功能
- JXCELL实例学习与研究(六) 之 sheet的分页功能的实现,以及基本EXCEL公式的使用 以及补充函数说明
- JDBC实现数据库的几种基本操作(查询,分页查询,根据关键字进行查询以及插入数据)
- 最近学习框架做了一个小网站,基本功能都实现了但是分页没办法用框架思想实现,查了资料找到一个不错的,修改了下分享下
- springmvc+Mybatis 分页查询的简单实现
- MyBatis实现CRUD(增加,删除,修改,查询,分页)
- mybatis分页及模糊查询功能实现
- MyBatis学习笔记-01.MyBatis简单入门_实现MyBatis对数据库的查询操作以及IllegalArgumentException异常问题
- js 简单实现表单数据的增添,单项删改,多项删除,修改以及全选功能
- mybatis+oracle实现分页查询--非常简单实用
- springmvc + myBatis + boostrap技术下简单实现的前后端分页功能
- 家庭财务管理系统实战4- mybatis分页查询功能改进实现
- lucene.net 2.9.2 实现索引生成,修改,查询,删除功能
- lucene.net 2.9.2 实现索引生成,修改,查询,删除功能