📄 tablerowiterator.java
字号:
/**
*
*/
package org.tshs.storage.rdbms;
import java.sql.ResultSet;
import java.sql.ResultSetMetaData;
import java.sql.SQLException;
import java.sql.Statement;
import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
/**
* @author Administrator
*
*/
public class TableRowIterator {
/**
* Results from a query
*/
private ResultSet results;
/**
* Statement used to submit the query
*/
private Statement statement;
/**
* The name of the RDBMS table
*/
private String table;
private boolean hasNext;
/** Record the column names of each results. */
private List<String> columnName;
/**
* @param set
* @param statement
*/
public TableRowIterator(ResultSet results, Statement statement) {
this(results, statement, null);
}
/**
* @param results2
* @param statement2
* @param object
*/
public TableRowIterator(ResultSet results, Statement statement, String table) {
this.results = results;
this.statement = statement;
this.table = table;
if (results == null) {
hasNext = false;
} else {
try {
hasNext = results.next();
} catch (SQLException e) {
// TODO Auto-generated catch block
e.printStackTrace();
hasNext = false;
}
}
}
public boolean hasNext() {
return hasNext;
}
public TableRow next() throws Exception {
if(!hasNext()){
return null;
}
TableRow row = null;
try {
if (columnName == null) {
columnName = DbManager.getColumnName(results);
}
row = convertToTableRow(results);
} catch (SQLException e1) {
// TODO Auto-generated catch block
e1.printStackTrace();
return null;
}
try {
hasNext = results.next();
} catch (SQLException e) {
// TODO Auto-generated catch block
e.printStackTrace();
hasNext = false;
}
return row;
}
private TableRow convertToTableRow(ResultSet results) throws Exception {
Map<String, Object> columns = new HashMap<String, Object>();
ResultSetMetaData meta = results.getMetaData();
int size = meta.getColumnCount();
List<String> columnList = new ArrayList<String>();
List<Integer> typeList = new ArrayList<Integer>();
String name = null;
for(int i = 0; i<size; i++){
name = meta.getColumnName(i+1);
columnList.add(name);
typeList.add(meta.getColumnType(i+1));
columns.put(name, results.getObject(i+1));
}
ColumnInfo info = new ColumnInfo(columnList, typeList);
return new TableRow(table, columns, info);
}
/**
*
*/
public void close() {
if (results != null) {
try {
results.close();
} catch (SQLException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
results = null;
}
if (statement != null) {
try {
statement.close();
} catch (SQLException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
statement = null;
}
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -