【发布时间】:2015-11-29 04:48:16
【问题描述】:
使用 JDBC 查询(总是选择所有列)和插入任意 Oracle 数据库表的好方法是什么?我创建了以下方法(尚未测试它)来检索任何表的属性名称和类型(我需要这些名称用于显示目的):
public ArrayList<Map<String, String>> retrieveTableAttributes(String tableName) throws SQLException{
ArrayList<Map<String, String>> attributes = new ArrayList<>();
DatabaseMetaData dbmd = conn.getMetaData();
ResultSet resultSet = dbmd.getColumns(null, null, tableName, null);
int i = 0;
while (resultSet.next()) {
attributes.add(new HashMap<String, String>());
attributes.get(i).put(resultSet.getString("COLUMN_NAME"), resultSet.getString("TYPE_NAME"));
i++;
}
resultSet.close();
return attributes;
}
我发现了这个方法PreparedStatement#setObject(int parameterIndex, Object x, int targetSqlType),我认为它可以用来为任意列类型设置一个值(在这种情况下,我需要将列类型作为 int 而不是类型名称),但我是不确定。那么,有没有更好的方法来设置和更重要的是从任意类型的列中获取值?如果有帮助,我正在尝试创建一个 Java EE GUI 工具来操作数据库(从数据库中的任何表中添加、删除、更新行)。
【问题讨论】: