📄 dbresult.java
字号:
package com.trulytech.mantis.result;import java.util.ArrayList;import java.util.HashMap;import java.io.Serializable;import com.trulytech.mantis.system.logWriter;/** * <p>Title: DBResult</p> * <p>Description: 查询返回记录集</p> * <p>Copyright: Copyright (c) 2002</p> * <p>Company: trulytech</p> * @author WangXian * @version 1.0 */public class DBResult implements Serializable { public String pageSearch = null; //页面form提交的查询数据 public String URLSearch; //URL上除了Page值之外的查询信息 public String TotalPage; //总页数 public String rowsPerPage; //每页的记录数 public String nextPage; //下一页的URL public String previousPage; //上一页的URL public String currentPage; //当前页码 public String firstPage; //首页URL public String lastPage; //尾页URL public int ColumnCount; //列数 public ArrayList ResultBuffer = null; //查询结果集 public HashMap ParamList = null; //参数列表 public DBResult() { ResultBuffer = new ArrayList(); TotalPage = "0"; rowsPerPage = "10"; currentPage = "0"; nextPage = "0"; previousPage = "0"; firstPage = "0"; lastPage = "0"; ColumnCount = 0; pageSearch = ""; URLSearch = ""; ParamList = new HashMap(); } /** * 根据给定的行号和列号获得相应的值 * @param col int 列号(从0开始) * @param rec int 行号(从0开始) * @return String 如果非法,则返回null */ public String getValue(int col, int rec) { if (rec >= ResultBuffer.size()) return null; else { ArrayList record = (ArrayList) ResultBuffer.get(rec); if (col >= record.size()) return null; else return ( (DBColumn) record.get(col)).Value; } } /** * 根据给定的列号获得第一行相应的值 * @param col int 列号 * @return String 如果非法,则返回null */ public String getValue(int col) { return getValue(col, 0); } /** * 根据给定的列返回字符串数组 * @param col int * @return String[] 如果非法则返回null */ public String[] getValues(int col) { int nSize = ResultBuffer.size(); if (nSize == 0) return null; else { String[] Ret = new String[nSize]; for (int i = 0; i < nSize; i++) { ArrayList rec = (ArrayList) ResultBuffer.get(i); if (col >= rec.size()) return null; else Ret[i] = ( (DBColumn) rec.get(col)).Value; } return Ret; } } /** * 根据给定的列返回ArrayList * @param col int * @return ArrayList */ public ArrayList getValueArr(int col) { ArrayList Ret = new ArrayList(); int nSize = ResultBuffer.size(); for (int i = 0; i < nSize; i++) { ArrayList rec = (ArrayList) ResultBuffer.get(i); if (col >= rec.size()) return Ret; else Ret.add( ( (DBColumn) rec.get(col)).Value); } return Ret; } /** * 根据某一列的值与参数相同的条件获得新的DBResult,但不支持分页 * @param col int * @param value String * @return DBResult */ public DBResult getEqualValue(int col, String value) { DBResult Ret = new DBResult(); if (value == null) return Ret; else { logWriter.Debug("获得新的结果集(列" + col + "='" + value + "')"); int nSize = ResultBuffer.size(); for (int i = 0; i < nSize; i++) { ArrayList rec = (ArrayList) ResultBuffer.get(i); if (col >= rec.size()) return new DBResult(); else { if ( ( ( (DBColumn) rec.get(col)).Value).equals(value)) { Ret.ResultBuffer.add(rec); } } } return Ret; } } /** * 根据某一列的值与参数不相同的条件获得新的DBResult,但不支持分页 * @param col int * @param value String * @return DBResult */ public DBResult getNotEqualValue(int col, String value) { DBResult Ret = new DBResult(); if (value == null) return Ret; else { logWriter.Debug("获得新的结果集(列" + col + "!='" + value + "')"); for (int i = 0; i < ResultBuffer.size(); i++) { ArrayList rec = (ArrayList) ResultBuffer.get(i); if (col >= rec.size()) return new DBResult(); else { if (! ( ( (DBColumn) rec.get(col)).Value).equals(value)) { Ret.ResultBuffer.add(rec); } } } return Ret; } } /** * 转换成HasMap * @return HashMap */ public HashMap getHashMap() { HashMap map = new HashMap(); int nSize = ResultBuffer.size(); for (int i = 0; i < nSize; i++) { ArrayList Rec = (ArrayList) ResultBuffer.get(i); map.put( ( (DBColumn) Rec.get(0)).Value, ( (DBColumn) Rec.get(1)).Value); } return map; } /** * 根据键索引和值索引转换DBResult为HashMap * @param KeyIndex int * @param ValueIndex int * @return HashMap */ public HashMap getHashMap(int KeyIndex, int ValueIndex) { HashMap map = new HashMap(); int nSize = ResultBuffer.size(); for (int i = 0; i < nSize; i++) { ArrayList Rec = (ArrayList) ResultBuffer.get(i); map.put( ( (DBColumn) Rec.get(KeyIndex)).Value, ( (DBColumn) Rec.get(ValueIndex)).Value); } return map; } /** * HTML编码 * @param valueID 需要HTML Encoder的列数组 * @return DBResult 输入结果集合 */ public DBResult HTMLEncoder(int[] valueID) { if (this != null) if (this.ResultBuffer != null) { int nSize = this.ResultBuffer.size(); for (int i = 0; i < nSize; i++) { ArrayList rec = (ArrayList)this.ResultBuffer.get(i); for (int j = 0; j < valueID.length; j++) { DBColumn dbcol = (DBColumn) rec.get(valueID[j]); String tmpStr = dbcol.toXML(); dbcol.Value = tmpStr; rec.set(valueID[j], dbcol); } this.ResultBuffer.set(i, rec); } } return this; } /** * toString XML格式 * @return String 值 */ public String toString() { return toXML(); } /** * 生成数组 * @return String[][] */ public String[][] toArray() { int nSize=this.ResultBuffer.size(); String[][] ret = new String[nSize][this.ColumnCount]; for (int i = 0; i < nSize; i++) { ArrayList Rec = (ArrayList)this.ResultBuffer.get(i); for (int j = 0; j < this.ColumnCount; j++) { ret[i][j] = ( (DBColumn) Rec.get(j)).Value; } } return ret; } /** * 输出xml格式的字符串 * @return String */ public String toXML() { StringBuffer buff = new StringBuffer(); buff.append("<Result>\n"); if (this != null) { int nSize=this.ResultBuffer.size(); for (int i = 0; i < nSize; i++) { ArrayList rec = (ArrayList)this.ResultBuffer.get(i); buff.append("<Record>\n"); for (int j = 0; j < rec.size(); j++) { DBColumn col = (DBColumn) rec.get(j); buff.append("<Item"); buff.append(j); buff.append(">"); buff.append(col.toXML()); buff.append("</Item"); buff.append(j); buff.append(">\n"); } buff.append("</Record>\n"); } } buff.append("</Result>\n"); return buff.toString(); } /** * 分页显示DBResult * @param page int 页码 * @param len int 页长度 * @return DBResult */ public DBResult getPageValue(int page, int len) { DBResult Ret = new DBResult(); if (page < 1) page = 1; if (len < 1) len = 1; int StartRecord = 0; Ret.currentPage = String.valueOf(page); int intTotalPage = ResultBuffer.size() % len == 0 ? ResultBuffer.size() / len : ResultBuffer.size() / len + 1; Ret.TotalPage = String.valueOf(intTotalPage); if (intTotalPage == 0) { return Ret; } else { if (page >= intTotalPage) page = intTotalPage; StartRecord = (page - 1) * len; logWriter.Debug("获得新的结果集( page=" + page + " pagesize=" + len + ")"); Ret.ColumnCount = this.ColumnCount; for (int i = StartRecord; i < ( ( (StartRecord + len) >= ResultBuffer.size()) ? ResultBuffer.size() : (StartRecord + len)); i++) { ArrayList rec = (ArrayList) ResultBuffer.get(i); Ret.ResultBuffer.add(rec); } return Ret; } }}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -