objectdb.java
来自「cwbbs 云网论坛源码」· Java 代码 · 共 467 行 · 第 1/2 页
JAVA
467 行
result.addElement(getObjectDb(rs.getString(1))); } else if (primaryKey.getType() == PrimaryKey.TYPE_LONG) { result.addElement(getObjectDb(new Long(rs.getLong(1)))); } else if (primaryKey.getType() == PrimaryKey.TYPE_COMPOUND) { HashMap keys = ((PrimaryKey) primaryKey.clone()). getKeys(); Iterator ir = keys.keySet().iterator(); while (ir.hasNext()) { String keyName = (String) ir.next(); KeyUnit ku = (KeyUnit) keys.get(keyName); if (ku.getType() == primaryKey.TYPE_INT) { ku.setValue(new Integer(rs.getInt(ku.getOrders() + 1))); } else if (ku.getType() == primaryKey.TYPE_LONG) { ku.setValue(new Long(rs.getLong(ku.getOrders() + 1))); } else { ku.setValue(rs.getString(ku.getOrders() + 1)); } } result.addElement(getObjectDb(keys)); } } while (rs.next()); } } catch (SQLException e) { logger.error("list: " + e.getMessage()); } finally { if (rs != null) { try { rs.close(); } catch (Exception e) {} rs = null; } if (conn != null) { conn.close(); conn = null; } } return result; } public Vector list(int start, int end) { return list(QUERY_LIST, start, end); } public Vector list(String sql, int start, int end) { int total = 0; ResultSet rs = null; Vector result = new Vector(); Connection conn = new Connection(connname); try { String countsql = SQLFilter.getCountSql(sql); rs = conn.executeQuery(countsql); if (rs != null && rs.next()) { total = rs.getInt(1); } if (rs != null) { rs.close(); rs = null; } conn.prepareStatement(sql); if (total != 0) { conn.setMaxRows(end + 1); } rs = conn.executePreQuery(); if (rs == null) { return result; } else { int count = end - start + 1; rs.setFetchSize(count); if (rs.absolute(start + 1) == false) { return result; } int k = 0; do { if (primaryKey.getType() == PrimaryKey.TYPE_INT) { result.addElement(getObjectDb(new Integer(rs.getInt(1)))); } else if (primaryKey.getType() == PrimaryKey.TYPE_STRING) { result.addElement(getObjectDb(rs.getString(1))); } else if (primaryKey.getType() == PrimaryKey.TYPE_LONG) { result.addElement(getObjectDb(new Long(rs.getLong(1)))); } else if (primaryKey.getType() == PrimaryKey.TYPE_COMPOUND) { HashMap keys = ((PrimaryKey) primaryKey.clone()). getKeys(); Iterator ir = keys.keySet().iterator(); while (ir.hasNext()) { String keyName = (String) ir.next(); KeyUnit ku = (KeyUnit) keys.get(keyName); if (ku.getType() == primaryKey.TYPE_INT) { ku.setValue(new Integer(rs.getInt(ku.getOrders() + 1))); } else if (ku.getType() == primaryKey.TYPE_LONG) { ku.setValue(new Long(rs.getLong(ku.getOrders() + 1))); } else { ku.setValue(rs.getString(ku.getOrders() + 1)); } } result.addElement(getObjectDb(keys)); } k++; } while (rs.next()); } } catch (SQLException e) { logger.error("list: " + e.getMessage()); } finally { if (rs != null) { try { rs.close(); } catch (Exception e) {} rs = null; } if (conn != null) { conn.close(); conn = null; } } return result; } public void setBlockSize(int blockSize) { this.blockSize = blockSize; } public String getTableName() { return tableName; } public ListResult listResult(String listsql, int curPage, int pageSize) throws ErrMsgException { int total = 0; ResultSet rs = null; Vector result = new Vector(); ListResult lr = new ListResult(); lr.setTotal(total); lr.setResult(result); Connection conn = new Connection(connname); try { String countsql = SQLFilter.getCountSql(listsql); rs = conn.executeQuery(countsql); if (rs != null && rs.next()) { total = rs.getInt(1); } if (rs != null) { rs.close(); rs = null; } int totalpages = (int) Math.ceil((double) total / pageSize); if (curPage > totalpages) { curPage = totalpages; } if (curPage <= 0) { curPage = 1; } if (total != 0) { conn.setMaxRows(curPage * pageSize); } rs = conn.executeQuery(listsql); if (rs == null) { return lr; } else { rs.setFetchSize(pageSize); int absoluteLocation = pageSize * (curPage - 1) + 1; if (rs.absolute(absoluteLocation) == false) { return lr; } do { if (primaryKey.getType() == PrimaryKey.TYPE_INT) { result.addElement(getObjectDb(new Integer(rs.getInt(1)))); } else if (primaryKey.getType() == PrimaryKey.TYPE_STRING) { result.addElement(getObjectDb(rs.getString(1))); } else if (primaryKey.getType() == PrimaryKey.TYPE_LONG) { result.addElement(getObjectDb(new Long(rs.getLong(1)))); } else if (primaryKey.getType() == PrimaryKey.TYPE_COMPOUND) { HashMap keys = ((PrimaryKey) primaryKey.clone()). getKeys(); Iterator ir = keys.keySet().iterator(); while (ir.hasNext()) { String keyName = (String) ir.next(); KeyUnit ku = (KeyUnit) keys.get(keyName); if (ku.getType() == primaryKey.TYPE_INT) { ku.setValue(new Integer(rs.getInt(ku.getOrders() + 1))); } else if (ku.getType() == primaryKey.TYPE_LONG) { ku.setValue(new Long(rs.getLong(ku.getOrders() + 1))); } else { ku.setValue(rs.getString(ku.getOrders() + 1)); } } result.addElement(getObjectDb(keys)); } } while (rs.next()); } } catch (SQLException e) { logger.error("listResult:" + e.getMessage()); throw new ErrMsgException("数据库出错!"); } finally { if (rs != null) { try { rs.close(); } catch (Exception e) {} rs = null; } if (conn != null) { conn.close(); conn = null; } } lr.setResult(result); lr.setTotal(total); return lr; } private int blockSize = 100;}
⌨️ 快捷键说明
复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?