前些天就写了个分页的,http://skymr.iteye.com/blog/665242
那个不太好,在写配置信息时都得在servlet中,每使用一次可得重写配置,而且在取得页面总数时,得使用sql语句重新查询,学习了一下dom4j解析xml,昨天又配置了Hiberate,想把知识巩固一点,于是赶紧完善了这个分页的插件。
在配置好xml文件后,只要在请求分页时,传入要显示的页码,读取xml文件,再实例化一个pojo类,查询数据库,调用对应的set方法,存于session中即可。
1.编写pojo类,如:
package cn.netjava.model; public class User { private String name; private int id; private String pwd; public String getName() { return name; } public void setName(String name) { this.name = name; } public String getPwd() { return pwd; } public void setPwd(String pwd) { this.pwd = pwd; } public int getId() { return id; } public void setId(int id) { this.id = id; } }
2.实现cn.netjava.db.DB_Interface接口
如:
package a; import java.sql.Connection; import java.sql.DriverManager; import java.sql.SQLException; import cn.netjava.db.DB_Interface; import cn.netjava.debug.Log; public class A implements DB_Interface{ Connection conn = null; public Connection getConn() { String url="jdbc:mysql://localhost:3306/catpage"; String root="root"; String pwd="root"; Log.printLog("user:"+root+"\tpwd:"+pwd); if(conn!=null){ return conn; } try { Log.printLog("user:"+root+"\tpwd:"+pwd); Class.forName("com.mysql.jdbc.Driver"); Log.printLog("user:"+root+"\tpwd:"+pwd); conn=DriverManager.getConnection(url,root,pwd); Log.printLog("连接成功"); } catch (ClassNotFoundException e) { e.printStackTrace(); Log.printLog(this.getClass()+"中,找不到Driver"); } catch (SQLException e) { e.printStackTrace(); Log.printLog(this.getClass()+"中,连接出错"); } return conn; } }
这个类该怎么写就看自己了,如果不想再建一个Connection,一定要把Connection对象传入。
3。编写pc.cfg.xml文件,在src里新建xml文件,命名为pc.cfg.xml
xml编写格式:
<?xml version="1.0" encoding="UTF-8"?> <users> <pc id="1">//分页id //name为pojo类名 //table为表名 //dbclassname为实现DB_Interface接口的类名 <class name="cn.netjava.model.User" table="user" dbclassname="cn.netjava.db.A"> //name为pojo类里的属性,column为对应数据库里的字段名 <property name="id" column="id"/> <property name="name" column="name"/> <property name="pwd" column="pwd"/> //每页显示数目 <per num="10"/> </class> </pc> </users>
4。控制显示,在servlet里写,如:
package a; import java.io.IOException; import java.util.List; import javax.servlet.ServletException; import javax.servlet.http.HttpServlet; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; import javax.servlet.http.HttpSession; import cn.netjava.plugin.PageDao; public class Control extends HttpServlet { public void service(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { String spage = request.getParameter("page");//用户请求显示哪一页 PageDao pd = PageDao.create(1);//传入分页id,我们的配置文件xml里只有一个id=1; HttpSession session = request.getSession(); int page = 0; if(spage!=null){ page = Integer.parseInt(spage); } try{ int pagenum = pd.getTotalPage();//得到总页数 session.setAttribute("pagenum",pagenum); session.setAttribute("pageindex",page); List<Object> listuser = pd.getType(page);//得到pojo实例列表 session.setAttribute("listuser",listuser); response.sendRedirect("cutpage.jsp"); } catch(Exception e){ e.printStackTrace(); } } }
5.jsp页面
共${pagenum }页 <table> <tr> <td>id</td> <td>name</td> <td>密码</td> </tr> <% List<Object> listuser = (List<Object>)session.getAttribute("listuser"); for(Object o : listuser) { User u = (User)o; %><tr> <td><%=u.getId() %></td> <td><%=u.getName() %></td> <td><%=u.getPwd() %></td> </tr> <% } %> </table> <input type = "button" value="上一页" onclick="before()"> <input type = "button" value="下一页" onclick="next()"> <script type="text/javascript"> function before() { window.location.href="control?page="+${pageindex-1}; } function next() { window.location.href="control?page="+${pageindex+1}; } </script>
- pagecut.jar (298.7 KB)
- 下载次数: 11
- doc.rar (88.5 KB)
- 下载次数: 8
发表评论
-
java中断线程
2015-05-21 18:29 644Thread.stop方法可能中断线程,但不安全,此方法都 ... -
NIO下载服务器模拟实现(一)
2015-05-21 11:28 0从JDK 1.4开始,Java的标 ... -
java NIO教程
2015-05-18 10:39 0Java NIO提供了与标准IO ... -
Java反射,改变final属性
2015-05-16 16:58 560问: 怎么改变final属性? public cl ... -
直接插入排序
2015-05-09 17:47 558插入排序包括 直接插入排序, 折半插入排序, Shell排序 ... -
曾经的笔试题-- java Cloneable
2015-05-09 10:12 0public class CloneTest { ... -
一个公司的笔试题
2015-05-09 08:02 01.编程题,用两个线程实现对容量为10的队列的加入与取出. ... -
Shell排序
2014-03-26 17:01 0在 -
快速排序
2015-05-09 13:52 362快速排序使用分治法策略来把一个串行分为两个子串行。 步骤 ... -
java 虚拟机加载机制
2014-03-25 10:42 0虚拟机把描述类的数据从class文件加载到内存,并对数据进 ... -
java Class 类
2014-03-25 10:01 0Class对象 是用来创建类的常规对象的,当我们编译一个Ja ... -
成都网丁有限公司面试题
2014-03-24 16:44 0OO OO的原理 值传递与引用传递 ... -
自律编(一) java访问修饰符
2014-03-24 16:23 0一直以为java里只有三种访问修饰符 public, pr ... -
华莱公司笔试
2014-03-12 19:49 0public class Test { publi ... -
sleep与wait
2014-03-03 14:43 0Obj.wait(),与Obj.notify()必须要与syn ... -
线程、进程
2014-03-03 14:39 0线程:程序内部独立运行单位 线程与进程区别: 1 ... -
transient
2014-03-03 13:59 0java语言的关键字,变量修饰符,如果用transient声 ... -
java中关键字volatile的作用
2014-03-03 13:57 0用在多线程,同步变量。 线程为了提高效率,将某成员变量(如A ... -
手机音响(一) java客户端逻辑层
2014-02-17 10:48 0北京科*公司配了一台电脑给我,但没有声音,耳机要连到主机箱 ... -
游戏 压力测试工具
2014-02-14 18:16 0公司让我为游戏做个 压力测试工具 ...
相关推荐
总结来说,基于MySQL `LIMIT`的Java分页小插件是一种实用的工具,它简化了分页查询的编写,提高了代码的可读性和可维护性。通过学习和使用这类插件,开发者能够更好地处理大数据量的查询,提升应用的性能和用户体验...
接下来,我们需要使用Java来编写数据访问对象(DAO)类,这个类将处理与数据库的所有交互。你可以创建一个`UserDAO`类,其中包含获取数据的方法,比如`getUsersByPage(int pageSize, int currentPage)`,该方法会...
Java和MySQL是两种非常重要的IT技术,广泛应用于各种软件开发,尤其是web应用。在这个"JAVA+MYsql学生信息管理系统"的示例中,我们将探讨如何使用Java编程语言来连接并操作MySQL数据库,实现一个简单的学生信息管理...
(基于mysq的Java毕业设计)在线医疗咨询网站系统(源码) 【项目技术】 开发语言:Java 架构:B/S 数据库:mysql 【实现功能】 患者功能模块:在患者系统首页可以查看个人信息、病历信息、药品信息、医生信息、科室信息...
Java基于JavaSwing和Mysql数据库的一个KTV点歌系统,大一下Java课设.zipJava基于JavaSwing和Mysql数据库的一个KTV点歌系统,大一下Java课设.zipJava基于JavaSwing和Mysql数据库的一个KTV点歌系统,大一下Java课设....
它基于Model-View-Controller(MVC)架构模式,帮助开发者将业务逻辑、数据处理和用户界面分离,提高了代码的组织性和可维护性。在本"Struts2+jdbc+mysql分页Demo"中,我们将探讨如何使用Struts2框架配合JDBC和MySQL...
标题"java_mysql_connect_jar.rar_connect_fencepx8_java_java mysql_mysq"暗示我们将讨论一个与FencePX8相关的Java MySQL连接库,而"标签"中的"connect fencepx8 java java_mysql mysql_connection_jar"进一步确认...
mysql limit两个参数:第一个参数表示从第几条记录开始,第二个参数表示要查询多少条记录
基于java+swing+mysq学生信息管理系统(高期末大作业)项目已获导师指导并通过的95分的高分期末大作业项目,可作为课程设计和期末大作业,下载即用无需修改,项目完整确保可以运行。 该系统功能完善、界面美观、操作...
项目名称:基于Java学生信息管理系统 主要技术:java、awt、swing等技术 运行工具:eclipse/MyEclipse都可以,eclipse最兼容 数 据 库: Mysql5.5/5.7/8.0版本 适用场景:课程设计参考学习、毕业设计参考学习 ...
GUI+Mysq学生管理系统,增删查改。 首先要确定要做哪些功能 使用数据库来保存数据 能增删改查学生的信息(学号,名称,年龄,性别,出生日期) ② 表结构设计 根据需求,那么只需要一个 student 表就能够完成功能...
项目名称:基于Java学生信息管理系统 主要技术:java、awt、swing等技术 运行工具:eclipse/MyEclipse都可以,eclipse最兼容 数 据 库: Mysql5.5/5.7/8.0版本 适用场景:课程设计参考学习、毕业设计参考学习 ...
标题中的“Vs2019 mysq的插件”指的是Visual Studio 2019中用于支持MySQL数据库的扩展插件。这个插件允许开发者在使用Visual Studio进行开发时,可以直接与MySQL数据库进行交互,无需借助其他工具。描述中提到的...
基于java+swing+mysq学生成绩管理系统(高分课程设计+课程报告)项目已获导师指导并通过的95分的高分期末大作业项目,可作为课程设计和期末大作业,下载即用无需修改,项目完整确保可以运行。 该系统功能完善、界面...
【标题】:基于Java+Swing+MySQL的学生成绩管理系统课程设计报告 【描述】:本报告详细阐述了一个使用Java编程语言,结合Swing图形用户界面库和MySQL数据库实现的学生成绩管理系统的设计与实现过程。这个系统是为...