有方法如下:
public List<Map> getList() throws SQLException {
List<Map> lt = new LinkedList<Map>();
int columnCount = 0;
if (rs != null) {
ResultSetMetaData rsmd = this.rs.getMetaData();
columnCount = rsmd.getColumnCount();
// System.out.println(rsmd.getColumnCount());
while (rs.next()) {
Map map = new HashMap();
for (int i = 1; i <= columnCount; i++) {
String columnName = rsmd.getColumnName(i);
int columnType = rsmd.getColumnType(i);
/* 根据数据库类型,映射对应java类型存入Map,我只写了String,double和int,请高手指点,其他数据库类型该如何映射 */
if (columnType == Types.INTEGER
|| columnType == Types.BIGINT
|| columnType == Types.SMALLINT) {
map.put(columnName, rs.getInt(columnName));
} else if (columnType == Types.VARCHAR
|| columnType == Types.NVARCHAR
|| columnType == Types.CHAR) {
map.put(columnName, rs.getString(columnName));
} else if (columnType == Types.FLOAT
|| columnType == Types.DOUBLE
|| columnType == Types.NUMERIC) {
map.put(columnName, rs.getDouble(columnName));
} else {
map.put(columnName, rs.getString(columnName));
}
}
lt.add(map);
}
}
return lt;
}
public List<Map> getList() throws SQLException {
List<Map> lt = new LinkedList<Map>();
int columnCount = 0;
if (rs != null) {
ResultSetMetaData rsmd = this.rs.getMetaData();
columnCount = rsmd.getColumnCount();
// System.out.println(rsmd.getColumnCount());
while (rs.next()) {
Map map = new HashMap();
for (int i = 1; i <= columnCount; i++) {
String columnName = rsmd.getColumnName(i);
int columnType = rsmd.getColumnType(i);
/* 根据数据库类型,映射对应java类型存入Map,我只写了String,double和int,请高手指点,其他数据库类型该如何映射 */
if (columnType == Types.INTEGER
|| columnType == Types.BIGINT
|| columnType == Types.SMALLINT) {
map.put(columnName, rs.getInt(columnName));
} else if (columnType == Types.VARCHAR
|| columnType == Types.NVARCHAR
|| columnType == Types.CHAR) {
map.put(columnName, rs.getString(columnName));
} else if (columnType == Types.FLOAT
|| columnType == Types.DOUBLE
|| columnType == Types.NUMERIC) {
map.put(columnName, rs.getDouble(columnName));
} else {
map.put(columnName, rs.getString(columnName));
}
}
lt.add(map);
}
}
return lt;
}
JDBC类型,你一定不会把现在和以前的所有数据库类型对应一遍都写到程序中吧.当然Sun公司也不会,他们一定会让各个数据库厂商去做这件事情.所以Sun公司只写了JDBC这套接口,而用不同的数据库要加载相应数据库的驱动包(ojdbc14.jar不陌生吧),这个类型对应就在这个驱动包中实现。这样各个数据库厂商只要管理自己数据库中的类型和JDBC类型的对应就可以了。