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

发布于 2024-12-07 07:25:20 字数 357 浏览 0 评论 0原文

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

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

因此,我可以创建一个具有 n 列的表,其中 n 每次都可以不同。

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

我怎样才能实现这个目标?

I have a Java web application. I have to create a table, and I am using JDBC.

I don't know in my list tag how many values will be there, so for each value tag, I need a corresponding column in my table. These values are fetched from some other application.

So I can create a table having n number of columns where n can be different every time.

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

How can I achieve this?

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(2

情绪失控 2024-12-14 07:25:20

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

You should use n rows to store the values, not n columns. Columns are somehow 'fixed' in a database, while it is easy to add/delete/modify rows.

预谋 2024-12-14 07:25:20

您需要动态处理表结构。存在多种解决方案。

使用 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您的表。

You need to deal with your table structure dynamically. Several solutions exist.

With JDBC, simply query Oracle and retrieve the columns of your table.

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));
}

Now you know which column exists or not and you can ALTER your table as you want.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文