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 + -
显示快捷键?