📄 cartdatabean.java~22~
字号:
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 + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -