62,635
社区成员




/**
*
* @author wcharry
*
*/
public class MyDataSet {
private static Log log = LogFactory.getLog(MyDataSet.class);
private List list = new ArrayList();
public MyDataSet(ResultSet rs) {
try {
dumpResultSet(rs);
} catch (SQLException e) {
e.printStackTrace();
}
}
public MyDataSet(ResultSet rs, Class clazz) {
try {
dumpResultSet(rs, clazz);
} catch (Exception e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
public int size() {
return list.size();
}
public Object get(int i) {
return list.get(i);
}
public Object get(int row, int col) {
HashMap hm = (HashMap) list.get(row);
Iterator iterator = hm.values().iterator();
int iCol = 0;
while (iterator.hasNext()) {
if (iCol == col)
return iterator.next();
iCol++;
}
return null;
}
public Object get(int row, String key) {
HashMap hm = (HashMap) list.get(row);
return hm.get(key);
}
private void dumpResultSet(ResultSet rs, Class clazz) throws Exception {
ResultSetMetaData metaData = (ResultSetMetaData) rs.getMetaData();
int colCount = metaData.getColumnCount();
Field[] fields = clazz.getDeclaredFields();
while (rs.next()) {
Object newInstance = clazz.newInstance();
for (int i = 1; i <= colCount; i++) {
try {
Object value = rs.getObject(i);
for (int j = 0; j < fields.length; j++) {
Field f = fields[j];
if (f.getName().equalsIgnoreCase(
metaData.getColumnName(i).replaceAll("_", ""))) {
log.info("f.getName:" + f.getName());
// 这里总是报错
BeanUtils.copyProperty(newInstance, f.getName(),
value);
log.info("value:" + value);
break;
}
}
} catch (Exception e) {
e.printStackTrace();
}
}
list.add(newInstance);
}
}
/**
* @param args
*/
public static void main(String[] args) {
String sql = "SELECT * FROM users";
ResultSet rs = DatabaseFactory.getInstance("mysql").executeQuery(sql);
MyDataSet ds2 = new MyDataSet(rs, UserInfo.class);
for (int i = 0; i < ds2.size(); ++i) {
UserInfo o = (UserInfo) ds2.get(i);
System.out.println(o.getUser());
}
DatabaseFactory.getInstance("mysql").closeConnection();
}
}
class UserInfo {
private int id;
private String user;
private String password;
public UserInfo() {
}
// public String toString() {
// return "id:" + id + ", user:" + user;
// }
public String getUser() {
return user;
}
public void setUser(String user) {
this.user = user;
}
public String getPassword() {
return password;
}
public void setPassword(String password) {
this.password = password;
}
public int getId() {
return id;
}
public void setId(int id) {
this.id = id;
}
}