如何在Java中创建具有可变列的数据库中的表?

时间:2011-09-29 08:36:32

标签: java database jdbc

我有一个Java Web应用程序。我必须创建一个表,我正在使用JDBC。

我不知道在我的list标签中会有多少个值,所以对于每个值标签,我需要在表格中有一个相应的列。这些值是从其他一些应用程序中获取的。

所以我可以创建一个 n 列数的表,其中 n 每次都可以不同。

<list>
<value>Name</value>
<value>Address</value>
<value>Contact No</value>
..
.
.
</list >

我怎样才能做到这一点?

2 个答案:

答案 0 :(得分:1)

您应该使用 n 行来存储值,而不是 n 列。列以某种方式在数据库中“固定”,而添加/删除/修改行很容易。

答案 1 :(得分:-2)

您需要动态处理表结构。有几种解决方案。

使用JDBC,只需查询Oracle并检索表的列。

String myTable = "FOO_TABLE";
String query = "Select COLUMN_NAME from USER_TAB_COLUMNS where TABLE_NAME=?";
PreparedStatement ps = conn.prepareStatement(query);
ps.setString(1, myTable);
//
Set<String> existingColumns = new HashSet<String>();
ResultSet rs = ps.executeQuery();

while (rs.next())
{
    existingColumns.add(rs.getString(1));
}

现在您知道哪个列存在与否,您可以根据需要ALTER使用。