01: // Copyright (c) 2003-2007, Jodd Team (jodd.sf.net). All Rights Reserved.
02:
03: package jodd.bean.loader;
04:
05: import java.sql.ResultSet;
06: import java.sql.ResultSetMetaData;
07: import java.util.StringTokenizer;
08:
09: import jodd.bean.BeanUtil;
10:
11: /**
12: * Populate java bean from ResultSet objects.
13: */
14: public class ResultSetBeanLoader implements BeanLoader {
15:
16: public static void loadBean(Object bean, Object rs) {
17: if (rs instanceof ResultSet) {
18: try {
19: ResultSetMetaData rsmd = ((ResultSet) rs).getMetaData();
20: int numberOfColumns = rsmd.getColumnCount();
21: for (int i = 1; i <= numberOfColumns; i++) {
22: StringTokenizer st = new StringTokenizer(rsmd
23: .getColumnName(i), "_");
24: StringBuilder columnName = new StringBuilder();
25: while (st.hasMoreTokens()) {
26: String token = st.nextToken().toLowerCase();
27: columnName.append(
28: token.substring(0, 1).toUpperCase())
29: .append(token.substring(1));
30: }
31: BeanUtil.setPropertyForcedSilent(bean, columnName
32: .toString(), ((ResultSet) rs).getObject(i));
33: }
34: } catch (Exception ex) {
35: // ignore
36: }
37: }
38: }
39:
40: public void load(Object bean, Object rs) {
41: loadBean(bean, rs);
42: }
43:
44: }
|