- 浏览: 72028 次
- 性别:
- 来自: 珠海
文章分类
最新评论
-
Fkron:
系乱的代码.....
ibatis分页 -
xiechunmei13:
最近项目使用到了struts+spring+ibatis,看到 ...
ibatis分页组件分页
步骤: 1. 创建SepPage类,并设置有关的方法。 2. 在进行页面的转移时传递并当前的页面并传递参数。 3. 进行分页处理。 a. 计算总记录数 b. 怎么样进行分页 c. 首页显示处理 d. 传递有关参数 e. 获取有关传递的页面的参数 实例:以查询所有的用户信息为例子进行说明 package bean; /**********************分页类描述************************/ public class SepPage { private int allRows; // 一共有多少行记录 private int curPage = 1; // 当前页面 private int rowPerPage = 8; // 一页显示多少行 private int allPages; // 一共有多少页 public int getAllRows() { return allRows; } public void setAllRows(int allRows) { this.allRows = allRows; } public int getCurPage() { return curPage; } public void setCurPage(int curPage) { this.curPage = curPage; } public int getRowPerPage() { return rowPerPage; } public void setRowPerPage(int rowPerPage) { this.rowPerPage = rowPerPage; } public int getAllPages() { return allPages; } public void setAllPages(int allPages) { this.allPages = allPages; } } 2.数据接收servlet package servlet; import java.io.IOException; import java.io.PrintWriter; import javax.servlet.ServletException; import javax.servlet.http.HttpServlet; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; import bean.DBOperationBean; import java.util.*; import util.Convert; import java.sql.*; import bean.*; /** * servlet类,获取有关客户的信息并进行相关的处理 * @author qihuasun */ public class CustomerServlet extends HttpServlet { //查询所有sql语句 public static final String SELECTBYALL="select * from SCOTT.EXRM_T_CUSTOMER order by CUM_FULLNAME "; public void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { this.doPost(request, response); } public void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { //处理有关中文乱码问题 request.setCharacterEncoding("GBK"); response.setContentType("text/html;charset=GBK"); response.setCharacterEncoding("GBK"); String status=request.getParameter("status").trim();//获取页面传递的标志位status String path="error.jsp"; if(!status.equals("")|| status!=null) { if(status.equals("findall")) { DBOperationBean db=new DBOperationBean(); String page=request.getParameter("curpage"); try { int curPage = Integer.parseInt(request.getParameter("curPage")); //获取页面传递的参数 SepPage pa=new SepPage(); pa.setCurPage(curPage); ArrayList al=db.query(this.SELECTBYALL,pa); if(al!=null) { // path="main.jsp"; path="TestMain2.jsp"; request.setAttribute("all",al); } else { path="error.jsp"; } } catch(Exception ex) { ex.printStackTrace(); } } } request.getRequestDispatcher(path).forward(request,response); } } 4. 数据访问类 package bean; import java.sql.*; import javax.sql.*; import javax.xml.parsers.DocumentBuilder; import javax.xml.parsers.DocumentBuilderFactory; import javax.naming.*; import org.w3c.dom.Document; import org.w3c.dom.Element; import org.w3c.dom.NodeList; import java.util.*; import bean.SepPage; /** * bean类,获取有关配置文件的信息的页面的信息,并进行有关的处理 * @author qihuasun */ public class DBOperationBean { //驱动 private final String DBDRIVER = "oracle.jdbc.driver.OracleDriver"; // 数据库连接地址 private final String DBURL = "jdbc:oracle:thin:@127.0.0.1:1521:data"; // 数据库用户名 private final String DBUSER = "SCOTT"; // 数据库连接密码 private final String DBPASSWORD = "sqh"; // 声明一个数据库连接对象 private Connection conn = null ; private PreparedStatement pstm=null; private ResultSet rs=null; public DBOperationBean() { this.init(); } private void init() //从数据库连接属性XML配置文件中获取关于连接的信息 { conn=new DBConnection().getConnection(); } private Connection getConnection() //取得数据库连接并设置为当前连接 { try { Class.forName(DBDRIVER); conn = DriverManager.getConnection(DBURL,DBUSER,DBPASSWORD);// 连接数据库 System.out.println("connected"); } catch(Exception ex) { ex.printStackTrace(); } return this.conn; } public ArrayList query(String sql,SepPage page) throws Exception {//执行查询,返回结果集 ArrayList al=new ArrayList(); try { Connection conn=this.getConnection(); pstm = conn.prepareStatement(sql, ResultSet.TYPE_SCROLL_INSENSITIVE, ResultSet.CONCUR_READ_ONLY); rs=pstm.executeQuery(); rs.last(); // 移动到最后一行 page.setAllRows(rs.getRow()); // 设置一共有多少行记录 // 算出有多少页 if (page.getAllRows() % page.getRowPerPage()== 0) { page.setAllPages(page.getAllRows() / page.getRowPerPage()); } else { page.setAllPages(page.getAllRows() / page.getRowPerPage() + 1); } //判定是否是第一页 if (page.getCurPage() == 1) //当前页 { // 将指针移动到此ResultSet对象的开头,正好位于第一行之前 rs.beforeFirst(); } else { // 将指针移动到此ResultSet对象的给定行编号 rs.absolute((page.getCurPage() - 1) * page.getRowPerPage()); } int i = 0; while(rs.next() && i < page.getRowPerPage()) { Customer cu=new Customer(); cu.setId(rs.getInt("CUM_ID")); cu.setName(rs.getString("CUM_FULLNAME")); cu.setAddress(rs.getString("CUM_MAINADDRESS")); cu.setPhone(rs.getString("CUM_PHONE")); al.add(cu); i++; } } catch(Exception ex) { ex.printStackTrace(); } finally { try { if(conn!=null) { this.conn.close(); } } catch(Exception ex) { ex.printStackTrace(); } } return al; } } 4、页面显示 <%@ page language="java" contentType="text/html;charset=GBK"%> <%@ page import="java.util.*,bean.SepPage"%> <%@page import="bean.Customer;"%> <% ArrayList all = (ArrayList) request.getAttribute("all"); SepPage seppage = (SepPage) request.getAttribute("pagebean"); //获取设置的SepPage参数 %> <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3c.org/TR/1999/REC-html401-19991224/loose.dtd"> <html xmlns="http://www.w3.org/1999/xhtml"> <head> <title>客户管理</title> <link href="css/style.css" rel="stylesheet" /> </head> <body> <div class="top" > 『 作者管理 』 </div> <div class="center"> <form action="AuthorServlet?status=selectbylike&curPage=1" method="post" style="margin: 0;"> <table class="fine" cellpadding="0" cellspacing="0"> <tr> <td colspan="3" style="height: 40px;"> </td> </tr> <tr> <td> 序号 </td> <td> 客户名称 </td> <td> 联系电话 </td> <td> 地址 </td> <td> 操作 </td> </tr> <% int i=0; if (all != null && all.size() != 0) { for (int j=0;j<all.size();j++) { i++; Customer cus=(Customer)all.get(j); int authorId1=cus.getId(); String str="找不到记录!!!"; if(i==0) { out.println("<scrtipt>alert('找不到记录')<script>"); } else {%> <tr> <td> <%=i%> </td> <td> <%=cus.getName()%> </td> <td> <%=cus.getPhone()%> </td> <td> <%=cus.getAddress()%> </td> <td> <td><a href="CustomerServlet?status=selectbyid&id=<%=cus.getId()%>">更新</a> </td> <td><a href="CustomerServlet?status=delete&id=<%=cus.getId()%>" onclick="if(confirm('是否删除业务信息?')){return true;}else{return false;}">删除</a> </td> <td><a href="addCus.jsp">添加</a></td> </tr> <%}%> <% }//end for循环 }//end if all != null %> <% if (seppage != null) { %> <tr> <td colspan="3" style="height: 32px; text-align: right; font-weight: bold; padding-right: 10px;"> <font color="#FF5BAD">一共有 <font color="red"><%=seppage.getAllPages()%></font> 页 当前在第 <font color="red"><%=seppage.getCurPage()%></font> 页 </font> <% if (seppage.getCurPage() != 1) //不是第一页,则首页,上一页可用 { %> <a href="CustomerServlet?status=selectbyall&curPage=1">首 页</a> <a href="CustomerServlet?status=selectbyall&curPage=<%=seppage.getCurPage()-1 %>">上一页</a> <% } %> <% if (seppage.getCurPage() != seppage.getAllPages())//不是最后一页,则有下一页和末页 { %> <a href="CustomerServlet?status=selectbyall&curPage=<%=seppage.getCurPage()+1 %>">下一页</a> <a href="CustomerServlet?status=selectbyall&curPage=<%=seppage.getAllPages() %>">末 页</a> <% } %> </td> </tr> <% } %> </table> </form> <form action="CustomerServlet?status=selectbylike&curPage=1" method="post" style="margin: 0;"> <table class="fine" cellpadding="0" cellspacing="0"> <tr> <td colspan="3" style="height: 40px;"> <select style="height: 20px" name="sel"> <option selected value="由客户姓名"> 由客户姓名 </option> <option value="由地址"> 由地址 </option> </select> <input type="text" name="in" style="width: 200px" /><input type="submit" value="查 找" /> </td> </tr> </table> </form> </div> </body>
发表评论
-
由数据库中商品名与exl中商品名来更新数据库中信息
2009-08-19 17:11 1001【内容介绍】:由数据库中商品名与exl中商品名来更新数据库中信 ... -
三级联动二——-js文件处理
2009-08-19 15:56 2270js处理var xmlHttp;var type;fu ... -
国家 省份 城市间的三级联动1
2009-08-19 15:55 2168数据库设计:国家表 T_N ... -
生成验证码文件
2009-08-19 15:34 853<%@ page contentType="i ... -
DOM生成和解析XML文档
2009-08-19 15:29 1192import java.io.FileInputStream; ...
相关推荐
88E1111是Marvell公司推出的一款高性能的以太网PHY(物理层)芯片,常用于网络设备如路由器、交换机和嵌入式系统中。在RGMII(Reduced Gigabit Media Independent Interface)模式下,88E1111能够实现与MAC(媒体...
88E1111是一款由Marvell公司生产的以太网物理层(PHY)芯片,主要应用于局域网络(LAN)的通信。这款芯片在设计上集成了多种功能,为网络设备提供高效的连接能力。本数据手册是针对中文读者特别准备的,旨在帮助那些...
根据提供的文档信息,我们可以深入探讨88E1111这款芯片的相关知识点,包括其功能、内部结构以及应用原理。 ### 一、88E1111概述 88E1111是一款由Marvell公司生产的高性能物理层(PHY)收发器芯片,用于实现普通GMII...
88E1111是一款高性能的以太网控制器,由Marvell公司生产,广泛应用于网络设备、服务器和嵌入式系统中。本资料完整版包含了大量的技术文档、数据手册、设计指南和可能的固件更新,对于深入理解和使用88E1111芯片至关...
88E1111是一款高性能的以太网控制器,主要应用于网络设备中,支持铜缆和光纤连接,提供灵活的网络接口解决方案。本压缩包包含的重要文档有88E1111的数据手册和相关的原理图设计,下面将详细阐述这些资料所涵盖的知识...
88E1111是一款高性能的以太网控制器,由Marvell公司设计,广泛应用于各种网络设备,如路由器、交换机以及嵌入式系统。本资料包"88E1111官方手册及demo.rar"是针对该芯片的权威资源,包括详细的手册和设计示例,为...
在本文中,我们将深入探讨基于Zynq7000 SoC平台的网络通信实现,特别是在结合88E1111以太网PHY芯片时的LWIP(Lightweight IP)协议栈应用。LWIP是一个开源的、轻量级的TCP/IP协议栈,适用于嵌入式系统,其目标是在...
《88E1111数据手册:深入解析网络接口控制器》 在现代网络设备中,88E1111是一款广泛应用的千兆以太网控制器,它为系统提供了高性能、低功耗的网络连接解决方案。这款芯片由Marvell公司设计,广泛应用于桌面电脑、...
《Marvell 88E1111 PHY芯片参考设计详解》 Marvell 88E1111是一款高性能的Gigabit Ethernet PHY(物理层)芯片,广泛应用于网络设备的接口设计中。该芯片支持GMII(GigaBit Media Independent Interface)协议,...
88E1111是一款常见的以太网控制器,由Marvell公司生产,常用于网络设备和嵌入式系统中。在电子设计领域,理解88E1111的原理图和PCB封装至关重要,因为这关系到硬件设计的正确性和可靠性。本篇文章将深入探讨88E1111...
88E1111是Marvell公司推出的一款高性能、低功耗的以太网控制器芯片,主要用于局域网(LAN)和广域网(WAN)应用。该芯片广泛应用于路由器、交换机、网络适配器等网络设备中,为用户提供高速、稳定的网络连接。在"88E...
88E1111很难得的中文资料,方便学习
在本文中,我们将深入探讨如何基于ZYNQ芯片实现88E1111的RGMII到SGMII转换,以及与BCM5396交换芯片的网络通信功能。这个过程涉及到对uboot和kernel的源码进行修改,以适应这种特殊的网络配置。 首先,ZYNQ的处理...
马威尔(Marvell)公司生产的88E1111是一款集成化的10/100/1000兆比特以太网收发器芯片。该芯片支持从10兆到1000兆不等的速率,并且集成了物理层(PHY)和介质访问控制层(MAC)的功能,使得芯片可以直接连接到...
从所提供的文件内容中,我们可以提取以下关于Marvell公司的88E1111以太网PHY(物理层)芯片的知识点。 知识点: 1. 产品型号及概述: 文件提到的“88E1111”是Marvell半导体公司生产的一款集成型的以太网PHY芯片,...
Marvell 88E1111是一款高性能的以太网控制器,专为网络设备的局域网(LAN)接口设计。这款芯片提供了全面的功能集,以满足现代网络设备的需求,如交换机、路由器和服务器等。数据手册是理解88E1111工作原理和实现...
千兆以太网PHY芯片Marvell 88E1111是一款广泛应用的网络接口控制器,主要用于实现局域网(LAN)中的物理层传输。它符合IEEE 802.3ab千兆以太网标准,能够提供高速、稳定的数据传输服务。这款芯片集成了发送器、接收...