`

java编写的基于mysq limit的分页小插件 升级版

阅读更多

前些天就写了个分页的,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>

 

 

  • doc.rar (88.5 KB)
  • 下载次数: 8
分享到:
评论

相关推荐

    java编写的基于mysq limit的分页小插件

    总结来说,基于MySQL `LIMIT`的Java分页小插件是一种实用的工具,它简化了分页查询的编写,提高了代码的可读性和可维护性。通过学习和使用这类插件,开发者能够更好地处理大数据量的查询,提升应用的性能和用户体验...

    MySQL+java类+JSP 分页

    接下来,我们需要使用Java来编写数据访问对象(DAO)类,这个类将处理与数据库的所有交互。你可以创建一个`UserDAO`类,其中包含获取数据的方法,比如`getUsersByPage(int pageSize, int currentPage)`,该方法会...

    JAVA+MYsqlMYsq

    Java和MySQL是两种非常重要的IT技术,广泛应用于各种软件开发,尤其是web应用。在这个"JAVA+MYsql学生信息管理系统"的示例中,我们将探讨如何使用Java编程语言来连接并操作MySQL数据库,实现一个简单的学生信息管理...

    (基于mysq的Java毕业设计)在线医疗咨询网站系统(源码).zip

    (基于mysq的Java毕业设计)在线医疗咨询网站系统(源码) 【项目技术】 开发语言:Java 架构:B/S 数据库:mysql 【实现功能】 患者功能模块:在患者系统首页可以查看个人信息、病历信息、药品信息、医生信息、科室信息...

    Java基于JavaSwing和Mysql数据库的一个KTV点歌系统,大一下Java课设.zip

    Java基于JavaSwing和Mysql数据库的一个KTV点歌系统,大一下Java课设.zipJava基于JavaSwing和Mysql数据库的一个KTV点歌系统,大一下Java课设.zipJava基于JavaSwing和Mysql数据库的一个KTV点歌系统,大一下Java课设....

    Struts2+jdbc+mysq分页Demo

    它基于Model-View-Controller(MVC)架构模式,帮助开发者将业务逻辑、数据处理和用户界面分离,提高了代码的组织性和可维护性。在本"Struts2+jdbc+mysql分页Demo"中,我们将探讨如何使用Struts2框架配合JDBC和MySQL...

    java_mysql_connect_jar.rar_connect_fencepx8_java_java mysql_mysq

    标题"java_mysql_connect_jar.rar_connect_fencepx8_java_java mysql_mysq"暗示我们将讨论一个与FencePX8相关的Java MySQL连接库,而"标签"中的"connect fencepx8 java java_mysql mysql_connection_jar"进一步确认...

    mysq limit两个参数.txt

    mysql limit两个参数:第一个参数表示从第几条记录开始,第二个参数表示要查询多少条记录

    基于java+swing+mysq学生信息管理系统(高期末大作业)

    基于java+swing+mysq学生信息管理系统(高期末大作业)项目已获导师指导并通过的95分的高分期末大作业项目,可作为课程设计和期末大作业,下载即用无需修改,项目完整确保可以运行。 该系统功能完善、界面美观、操作...

    基于java+swing+mysq学生信息管理系统v3.0

    项目名称:基于Java学生信息管理系统 主要技术:java、awt、swing等技术 运行工具:eclipse/MyEclipse都可以,eclipse最兼容 数 据 库: Mysql5.5/5.7/8.0版本 适用场景:课程设计参考学习、毕业设计参考学习 ...

    JAVAGUI+Mysq学生管理系统.zip

    GUI+Mysq学生管理系统,增删查改。 首先要确定要做哪些功能 使用数据库来保存数据 能增删改查学生的信息(学号,名称,年龄,性别,出生日期) ② 表结构设计 根据需求,那么只需要一个 student 表就能够完成功能...

    基于java+swing+mysq学生信息管理系统V2.0

    项目名称:基于Java学生信息管理系统 主要技术:java、awt、swing等技术 运行工具:eclipse/MyEclipse都可以,eclipse最兼容 数 据 库: Mysql5.5/5.7/8.0版本 适用场景:课程设计参考学习、毕业设计参考学习 ...

    Vs2019 mysq的插件l

    标题中的“Vs2019 mysq的插件”指的是Visual Studio 2019中用于支持MySQL数据库的扩展插件。这个插件允许开发者在使用Visual Studio进行开发时,可以直接与MySQL数据库进行交互,无需借助其他工具。描述中提到的...

    基于java+swing+mysq学生成绩管理系统(高分课程设计+课程报告)

    基于java+swing+mysq学生成绩管理系统(高分课程设计+课程报告)项目已获导师指导并通过的95分的高分期末大作业项目,可作为课程设计和期末大作业,下载即用无需修改,项目完整确保可以运行。 该系统功能完善、界面...

    基于java+swing+mysq学生成绩管理系统课程设计报告.docx

    【标题】:基于Java+Swing+MySQL的学生成绩管理系统课程设计报告 【描述】:本报告详细阐述了一个使用Java编程语言,结合Swing图形用户界面库和MySQL数据库实现的学生成绩管理系统的设计与实现过程。这个系统是为...

Global site tag (gtag.js) - Google Analytics