`

bean、dao、util、servlet分页操作

    博客分类:
  • java
阅读更多
1、bean层
JavaBean
package Bean;
//物品类
public class Goods
{
 private int goodsid;  // 物品编号
 public String goodsname;   // 物品名称
 private float price;        // 物品单件
 public void setGoodsid(int goodsid)
 {
  this.goodsid = goodsid;
 }
 public int getGoodsid()
 {
  return goodsid;
 }
 // 物品名称
 public void setGoodsname(String goodsname)
 {
  this.goodsname = goodsname;
 }
 public String getGoodsname()
 {
  return goodsname;
 }
 // 物品价格
 public void setPrice(float price)
 {
  this.price = price;
 }
 public float getPrice()
 {
  return price;
 }
}

2、util层
单例类
package util;
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.SQLException;
public class DbConnection {
 private static Connection conn=null;
 private String driver="com.mysql.jdbc.Driver";
 private String url="jdbc:mysql://localhost:3306/mydata";
 private String user="root";
 private String password="1234567";
 
 private DbConnection(){
  try {
   Class.forName(driver);
   conn=DriverManager.getConnection(url, user, password);
  } catch (ClassNotFoundException e) {
   e.printStackTrace();
  } catch (SQLException e) {
   e.printStackTrace();
  }
 }
 
 public static Connection getConnection() {
  if(conn==null){
   new DbConnection();
  }
  return conn;
 }
}


3、dao层
数据库访问实现
package DAO;
import java.sql.Connection;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.sql.Statement;
import java.util.ArrayList;
import Bean.Goods;
import util.DbConnection;
public class Dao {
 private static Connection conn;
 private static ResultSet rs;
 private static Statement stmt;
 private static int pagesize=5;
 static{
  conn=DbConnection.getConnection();
 }
 
 //通用的查询方法
 public static ResultSet ExecuteQuery(String sql) {
  try {
   stmt=conn.createStatement();
   rs=stmt.executeQuery(sql);
  } catch (SQLException e) {
   e.printStackTrace();
  }
  return rs;
 }
 
 //分页逻辑
 public static ArrayList<Goods> getGoodsList(int currentpageno){
  ArrayList<Goods> GoodsList=new ArrayList<Goods>();
  int BeginRecord=(currentpageno-1)*pagesize;
  int EndRecord=currentpageno*pagesize;
  rs=ExecuteQuery("select * from goods limit "+BeginRecord+","+EndRecord);
  try {
   while(rs.next()){
    Goods goods=new Goods();
    goods.setGoodsid(rs.getInt(1));
    goods.setGoodsname(rs.getString(2));
    goods.setPrice(rs.getFloat(3));
    GoodsList.add(goods);
   }
  } catch (SQLException e) {
   e.printStackTrace();
  }
  return GoodsList;
 }
 
 //统计记录数
 public static int getPageCount(){
  int total=0;
  int PageCount=0;
  rs=ExecuteQuery("select count(*) from goods");
  try {
   if(rs.next()){
    total=rs.getInt(1);
    PageCount=(total-1)/pagesize+1;
   }
  } catch (SQLException e) {
   e.printStackTrace();
  }
  return PageCount;
 }
}

4、servlet控制器
servlet控制器
package servlet;
import java.io.IOException;
import java.io.PrintWriter;
import java.util.ArrayList;
import javax.servlet.ServletException;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import Bean.Goods;
import DAO.Dao;
public class GetLimiteGoods extends HttpServlet {
 private static final long serialVersionUID = 1L;
 public void doGet(HttpServletRequest request, HttpServletResponse response)
   throws ServletException, IOException {
  response.setContentType("text/html");
  String pageno= request.getParameter("currentpageno");
  int currentpageno=1;
  if(pageno!=null){
   currentpageno=Integer.parseInt(pageno);
  }
  ArrayList<Goods> GoodsList=Dao.getGoodsList(currentpageno);
  request.setAttribute("GoodsList", GoodsList);
  request.setAttribute("currentpageno", currentpageno);
  request.setAttribute("PageCount", Dao.getPageCount());
  request.getRequestDispatcher("/LimiteGoods.jsp").forward(request, response);
 }
 public void doPost(HttpServletRequest request, HttpServletResponse response)
   throws ServletException, IOException {
  response.setContentType("text/html");
  PrintWriter out = response.getWriter();
  out
    .println("<!DOCTYPE HTML PUBLIC \"-//W3C//DTD HTML 4.01 Transitional//EN\">");
  out.println("<HTML>");
  out.println("  <HEAD><TITLE>A Servlet</TITLE></HEAD>");
  out.println("  <BODY>");
  out.print("    This is ");
  out.print(this.getClass());
  out.println(", using the POST method");
  out.println("  </BODY>");
  out.println("</HTML>");
  out.flush();
  out.close();
 }
}



5、xml配置:
<?xml version="1.0" encoding="UTF-8"?>
<web-app version="2.5" 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_2_5.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>GetLimiteGoods</servlet-name>
    <servlet-class>servlet.GetLimiteGoods</servlet-class>
  </servlet>
  <servlet-mapping>
    <servlet-name>GetLimiteGoods</servlet-name>
    <url-pattern>/servlet/GetLimiteGoods</url-pattern>
  </servlet-mapping>
</web-app>


6、表现层
<%@ page language="java" contentType="text/html; charset=UTF-8"
 pageEncoding="UTF-8"%>
 <%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %>
<!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>
 <center>
 <c:if test="${currentpageno>=1}">
   <a href="GetLimiteGoods?currentpageno=1">首页</a>
   <a href="GetLimiteGoods?currentpageno=${currentpageno-1}">上一页</a>
  </c:if>
  <c:if test="${currentpageno==1}">
   <a href="GetLimiteGoods?currentpageno=${currentpageno+1}">下一页</a>
   <a href="GetLimiteGoods?currentpageno=${PageCount}">尾 页</a>
  </c:if>
  <table width="80%" border="1" height="56">
   <tr align="center">
    <td>
     商品编号
    </td>
    <td>
     商品名称
    </td>
    <td>
     商品价格
    </td>
   </tr>
   <c:forEach var="goods" items="${GoodsList}">
    <tr align="center">
     <td>
      ${goods.goodsid}
     </td>
     <td>
      ${goods.goodsname}
     </td>
     <td>
      ${goods.price}
     </td>
    </tr>
   </c:forEach>
  </table>
  </center>
 </body>
</html>

分享到:
评论

相关推荐

    springmybatis

    mybatis实战教程mybatis in action之七实现mybatis分页源码下载 mybatis实战教程mybatis in action之八mybatis 动态sql语句 mybatis实战教程mybatis in action之九mybatis 代码生成工具的使用 mybatis ...

    最新Java面试宝典pdf版

    13、在DAO中如何体现DAO设计模式? 123 14、spring+Hibernate中委托方案怎么配置? 123 15、spring+Hibernate中委托方案怎么配置? 123 16. hibernate进行多表查询每个表中各取几个字段,也就是说查询出来的结果集没有...

    Java面试宝典2010版

    13、在DAO中如何体现DAO设计模式? 14、spring+Hibernate中委托方案怎么配置? 15、spring+Hibernate中委托方案怎么配置? 16. hibernate进行多表查询每个表中各取几个字段,也就是说查询出来的结果集没有一个实体类...

    Java面试笔试资料大全

    13、在DAO中如何体现DAO设计模式? 123 14、spring+Hibernate中委托方案怎么配置? 123 15、spring+Hibernate中委托方案怎么配置? 123 16. hibernate进行多表查询每个表中各取几个字段,也就是说查询出来的结果集没有...

    JAVA面试宝典2010

    13、在DAO中如何体现DAO设计模式? 123 14、spring+Hibernate中委托方案怎么配置? 123 15、spring+Hibernate中委托方案怎么配置? 123 16. hibernate进行多表查询每个表中各取几个字段,也就是说查询出来的结果集没有...

    Java面试宝典-经典

    13、在DAO中如何体现DAO设计模式? 123 14、spring+Hibernate中委托方案怎么配置? 123 15、spring+Hibernate中委托方案怎么配置? 123 16. hibernate进行多表查询每个表中各取几个字段,也就是说查询出来的结果集没有...

    java面试题大全(2012版)

    13、在DAO中如何体现DAO设计模式? 123 14、spring+Hibernate中委托方案怎么配置? 123 15、spring+Hibernate中委托方案怎么配置? 123 16. hibernate进行多表查询每个表中各取几个字段,也就是说查询出来的结果集没有...

    Java面试宝典2012版

    13、在DAO中如何体现DAO设计模式? 123 14、spring+Hibernate中委托方案怎么配置? 123 15、spring+Hibernate中委托方案怎么配置? 123 16. hibernate进行多表查询每个表中各取几个字段,也就是说查询出来的结果集...

    java面试宝典2012

    13、在DAO中如何体现DAO设计模式? 134 14、spring+Hibernate中委托方案怎么配置? 134 15、spring+Hibernate中委托方案怎么配置? 134 16. hibernate进行多表查询每个表中各取几个字段,也就是说查询出来的结果集没有...

    Java面试宝典2012新版

    13、在DAO中如何体现DAO设计模式? 123 14、spring+Hibernate中委托方案怎么配置? 123 15、spring+Hibernate中委托方案怎么配置? 123 16. hibernate进行多表查询每个表中各取几个字段,也就是说查询出来的结果集没有...

    Java学习笔记-个人整理的

    {13.5}分页查询}{196}{section.13.5} {13.5.1}MySQL}{198}{subsection.13.5.1} {13.6}连接池}{199}{section.13.6} {13.6.1}Wrapper}{199}{subsection.13.6.1} {13.7}DAO}{199}{section.13.7} {13.8}java.util....

    Java 面试宝典

    一. Java 基础部分..................................................................................................................... 7 1、一个".java"源文件中是否可以包括多个类(不是内部类)?...

Global site tag (gtag.js) - Google Analytics