Вы можете создать класс, как этот, который отображает SQL типы данных с типами Java данных:
class Row
{
public Map <Object,Class> row;
public static Map <String, Class> TYPE;
static
{
TYPE = new HashMap<String, Class>();
TYPE.put("INTEGER", Integer.class);
TYPE.put("TINYINT", Byte.class);
TYPE.put("SMALLINT", Short.class);
TYPE.put("BIGINT", Long.class);
TYPE.put("REAL", Float.class);
TYPE.put("FLOAT", Double.class);
TYPE.put("DOUBLE", Double.class);
TYPE.put("DECIMAL", BigDecimal.class);
TYPE.put("NUMERIC", BigDecimal.class);
TYPE.put("BOOLEAN", Boolean.class);
TYPE.put("CHAR", String.class);
TYPE.put("VARCHAR", String.class);
TYPE.put("LONGVARCHAR", String.class);
TYPE.put("DATE", Date.class);
TYPE.put("TIME", Time.class);
TYPE.put("TIMESTAMP", Timestamp.class);
// ...
}
public Row()
{
row = new HashMap<Object,Class>();
}
public void add<t> (t data)
{
row.put(data, data.getClass());
}
public void add (Object data, String sqlType)
{
add((Row.TYPE.get(sqlType)) data);
}
public static void formTable (ResultSet rs, ArrayList<Row> table)
{
if (rs == null) return;
ResultSetMetaData rsmd = rs.getMetaData();
int NumOfCol = rsmd.getColumnCount();
while (rs.next())
{
row = new Row();
for(int i = 1; i <= NumOfCol; i++)
{
row.add(rs.getObject(i), rsmd.getColumnTypeName(i));
}
table.add(row);
}
}
}
Что вы можете использовать его как это:
List<Row> table = new ArrayList<Row>();
Row row = null;
ResultSet rs = st.executeQuery("SELECT * FROM table_name");
Row.formTable(rs, table);
Тогда вы можете получить поля и направить их в соответствующие типы данных:
for (Row row : table)
{
for (Object data : row.row.getKeySet())
{
System.out.print(" > " + ((row.row.get(data) data));
}
System.out.println();
}
Нет. Вам нужно разобрать строку в «Объекты» и сохранить их в «Коллекция». Рассмотрим _querying_ данные в кусках в потоках. –
Если вы не хотите писать такой код, посмотрите, например. Весенний шаблон JDBC. Это облегчает вам множество таких кодовых табличек кодов без нагрузки ORM. –
Вы хотите ORM. http://stackoverflow.com/questions/tagged/java+orm?sort=frequent&pagesize=50 или google для java orm –