📄 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<pageNumber;i++)
{
Product prod=new Product();
//System.out.println("desp:"+rsProducts.getString("Description"));
//prod.setProduct(9,"aaa","bbb",9,"ccc",234.5,345.6,45.8,"ddd",9,6,"eee","fff","ggg");
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")
);
items.addElement(prod);
rsProducts.next();
}
rsProducts.close();
stmt.close();
}
catch(SQLException e){
// e.printStackTrace();
System.out.println("Exception:storeItem");
}
}
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -