cartdatabean.java

来自「购物车模块实例。购物车模块可以浏览商品类别;可以根据商品类别浏览商品信息;可以购」· Java 代码 · 共 138 行

JAVA
138
字号
package cmscartpro;import javax.ejb.*;import javax.naming.*;import javax.sql.DataSource;import java.sql.*;public class CartDataBean implements SessionBean {  SessionContext sessionContext;  public void ejbCreate() throws CreateException {  }  public void ejbRemove() {  }  public void ejbActivate() {  }  public void ejbPassivate() {  }  public void setSessionContext(SessionContext sessionContext) {    this.sessionContext = sessionContext;  }  //取得数据库联接缓冲池的联接  public java.sql.Connection getConnection() {    //创建服务器对象查找类    InitialContext initCtx = null;   try {     initCtx = new InitialContext();     //取得JNDI名字=InforSQLServer的数据源     DataSource ds = (javax.sql.DataSource)initCtx.lookup("InforSQLServer");     //取得数据库联接     return ds.getConnection();   } catch(Exception ne) {     System.out.println("找不到数据源");     throw new EJBException(ne);   } finally {     try {       if(initCtx != null) initCtx.close();     } catch(NamingException ne) {       System.out.println(ne.getMessage());       throw new EJBException(ne);     }   }  }  //关闭数据库联接的方法  private void cleanup(Connection con) {    //将数据库联接返回缓冲池    try {      if (con != null) con.close();    } catch (Exception e) {      e.printStackTrace();    }  }  //取得产品类别数组的方法  public String[][] getCategories() {    //创建存取产品类别数据表数据的数组    String[][] categories = null;    //取得Infor数据库联接缓冲池的联接    Connection conn = getConnection();    int rowCount = 0;    try{      //创建SQL语句执行类      Statement stmt = conn.createStatement();      String sql = "select count(*) from category";      ResultSet rs = stmt.executeQuery(sql);      //取得总记录数      if(rs.next()){        rowCount = rs.getInt(1);      }      if(rowCount > 0){        //根据总记录数创建数组        categories = new String[rowCount][3];        sql = "select * from category";        rs = stmt.executeQuery(sql);        int row = 0;        while(rs.next()){          //取得类别ID          categories[row][0] = rs.getString(1);          //取得类别名字          categories[row][1] = rs.getString(2);          //取得类别描述          categories[row][2] = rs.getString(3);          row++;        }      }else{        categories = new String[1][1];        categories[0][0] = "没有产品类别数据.";      }      stmt.close();    }catch(Exception ex){      ex.printStackTrace();    }    //关闭数据库的联接    cleanup(conn);    return categories;  }  //取得产品数组的方法  public String[][] getProducts(int categoryId) {    //创建存取产品数据表数据的数组    String[][] products = null;    //取得Infor数据库联接缓冲池的联接    Connection conn = getConnection();    int rowCount = 0;    try{      //创建SQL语句执行类      Statement stmt = conn.createStatement();      String sql = "select count(*) from product where categoryId = " + categoryId;      ResultSet rs = stmt.executeQuery(sql);      //取得总记录数      if(rs.next()){        rowCount = rs.getInt(1);      }      if(rowCount > 0){        //根据总记录数创建数组        products = new String[rowCount][4];        sql = "select id, name, quantity, price from product where categoryId = "            + categoryId;        rs = stmt.executeQuery(sql);        int row = 0;        while(rs.next()){          //将product数据表的数据放入products数组          for(int i = 0; i < 4; i++){            products[row][i] = rs.getString(i + 1);          }          row++;        }      }else{        products = new String[1][1];        products[0][0] = "没有产品数据.";      }      stmt.close();    }catch(Exception ex){      ex.printStackTrace();    }    //关闭数据库的联接    cleanup(conn);    return products;  }}

⌨️ 快捷键说明

复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?