www.pudn.com > Easy_Buy电子商务系统.rar > ProductListBean.java


//package eshop; 
import java.util.*; 
import java.sql.*; 
 
 
public class ProductListBean { 
  private Vector items=new Vector(); 
  private int pageSize; 	//一页显示的记录数 
  private int rowCount;		//ResultSet的记录总数 
  private int pageCount;	//ResultSet分页后的总页数 
  private int showPage;		//待显示页码,即当前页码数 
  private String pageIndex; 
  private int pageNumber;	//本页商品个数 
  private int productID; 
  private Connection conn; 
 
  public ProductListBean() { 
  } 
 
  /*从商品列表中得到一种商品的纪录*/ 
  public Product getItem(int index){ 
    return (Product)items.elementAt(index); 
  } 
 
  /*得到总页数*/ 
  public int getPageCount(){ 
    return pageCount; 
  } 
 
  /*得到当前页码数*/ 
  public int getShowPage(){ 
    return showPage; 
  } 
 
  /*得到本页商品个数*/ 
  public int getPageNumber(){ 
    return  pageNumber; 
  } 
 
  public String getPageIndex(){ 
    return pageIndex; 
  } 
 
  /*设置数据库连接*/ 
  public void setConn(Connection conn){ 
    this.conn=conn; 
  } 
 
  /*初始化,即重置变量,清空商品列表中的所有商品*/ 
  public void reset(){ 
    pageSize=5; 
    pageCount=0; 
    showPage=1; 
    items.removeAllElements(); 
  } 
 
  /*设置当前页码数*/ 
  public void setPageIndex(String pageIndex){ 
    this.pageIndex=pageIndex; 
  } 
 
  /*设置商品号*/ 
  public void setProductID(int productID){ 
    this.productID=productID; 
  } 
 
  /*得到商品号*/ 
  public int getProductID(){ 
    return productID; 
  } 
 
  /*得到当前要显示的商品*/ 
  public Product getProduct(){ 
    try{ 
      //创建一个可以滚动的只读的SQL语句对象 
      Statement stmt = conn.createStatement(ResultSet.TYPE_SCROLL_INSENSITIVE, 
                                            ResultSet.CONCUR_READ_ONLY); 
      String sql = "SELECT * FROM PRODUCTS WHERE ProductID=" + productID; 
      //System.out.println(sql); 
      ResultSet rsProducts = stmt.executeQuery(sql); 
      if (rsProducts.next()) { 
        Product prod = new Product(); 
        prod.setProduct(rsProducts.getInt("ProductID"), 
                            rsProducts.getString("ProductName"), 
                            rsProducts.getString("Coding"), 
                            rsProducts.getInt("SupplierID"), 
                            rsProducts.getString("CategoryID"), 
                            rsProducts.getDouble("SupplierPrice"), 
                            rsProducts.getDouble("MarketPrice"), 
                            rsProducts.getDouble("Price"), 
                            rsProducts.getString("Picture"), 
                            rsProducts.getInt("StockNumber"), 
                            rsProducts.getInt("SaleNumber"), 
                            rsProducts.getString("ModifyMan"), 
                            rsProducts.getString("ModifyDate"), 
                            "暂无描述" 
                     //       rsProducts.getString("Description") 
                            ); 
        return prod; 
      } 
    } 
    catch(SQLException e){ 
     // e.printStackTrace(); 
     System.out.println("Exception:getProduct"); 
    } 
    return null; 
  } 
 
  /*根据页码号从数据库中得到相应的商品信息,并将其存储到商品列表items中*/ 
  public void storeItem() 
  { 
    try 
    { 
    	      //创建一个可以滚动的只读的SQL语句对象 
      Statement stmt = conn.createStatement(ResultSet.TYPE_SCROLL_INSENSITIVE, 
                                            ResultSet.CONCUR_READ_ONLY); 
      String sql="SELECT * FROM Products"; 
      ResultSet rsProducts=stmt.executeQuery(sql); 
      //System.out.println("storeItem"); 
      rsProducts.last();	//将指针移动到最后一条记录 
      rowCount=rsProducts.getRow();	//取得ResultSet中记录的总条数 
      pageCount=((rowCount%pageSize)==0)?(rowCount/pageSize):(rowCount/pageSize+1);	//计算总页数 
      //System.out.println("rowCount:"+rowCount+"pageCount:"+pageCount); 
      if(pageIndex==null||pageIndex.equals("")) 
      { 
        showPage=1;										//URL中不带参数的情况 
      } 
      else 
      { 
        //try{ 
          showPage=Integer.parseInt(pageIndex);				//URL中带参数的情况 
        //} 
        //catch(NumberFormatException e){ 
         // showPage=1; 
        //} 
        if(showPage<1)  
        { 
          showPage=1;									//URL中应显示的页面小于1的处理 
        } 
        else if(showPage>pageCount) 
        { 
                showPage=pageCount;							//URL中应显示的页面大于页面总数的处理 
        } 
      } 
     // System.out.println("showPage:"+showPage); 
      if(showPage*pageSize>=rowCount) 
      { 
        pageNumber=rowCount-(showPage-1)*pageSize; 
      } 
      else 
      { 
        pageNumber=pageSize; 
      } 
      if(pageCount>0) 
      { 
        rsProducts.absolute((showPage-1)*pageSize+1); 
      } 
 
	  
      for(int i=0;i