如何用jdbc在swing中用另一个字段替换外键?
Posted
技术标签:
【中文标题】如何用jdbc在swing中用另一个字段替换外键?【英文标题】:How to replace a foreign key by another field in swing with jdbc? 【发布时间】:2012-12-20 05:37:11 【问题描述】:这是一个初学者问题,也许我遗漏了一些明显的东西,但是我应该如何使用 TableModel
和 jdbc
来显示引用表中另一个字段的值而不是外键的值?
我想到了两种可能的解决方案,但我对它们不太满意。 (他们来了,但请注意,如果有更好的解决方案,我并不是坚持我的想法应该在答案中得到解决。)
一个是对引用的表进行查询,以获取getValueAt
中每个外键字段值的替代值。这似乎不太有效(即使已缓存),我想知道如何将其与编辑和将更改的数据写回表同步。
另一个是用 SQL 查询替换字段的值。这不会使更新/插入过于简单,但可以进一步推进以使用视图。似乎是一个可行的解决方案,但我真的需要更改我的数据库只是为了将它与一个简单的 java 应用程序一起使用吗?
有没有更好的解决方案/这些有什么问题/我完全错了吗? :)
应该支持读取、更新、插入、删除。我正在使用 mysql(和/或 sqlite)。
【问题讨论】:
是否有“显示引用表中另一个字段的值而不是外键的值”的术语? :) 我们可以推断您有一个 RDBMS,并且您想要做的是编写一个带有连接的选择查询。如果您使用 JPA,您可以使用 Eager fetch 为您完成此操作,但那是另一回事了。试着写一些 sql 来得到你想要的,然后再添加 Java/Table/etc。 @Romski 我实际上有一个选择查询,它加入了我想要的东西。但是如果用户编辑了表中的值,我该如何更新这些值呢?我是否必须使用setValueAt
中的java 代码(我想每个外键+1 语句)来反映select-join 查询中固有的复杂性?感谢您推荐 JPA,但我现在想尝试使用 jdbc。
【参考方案1】:
您需要将用户数据转换回您的数据库模型。由于您使用的是 jdbc,这意味着构建 SQL。您应该查看 PreparedStatement,请参阅 Java tutorial 了解用法。我希望您会根据某些事件执行此操作,例如保存按钮或值更改。
【讨论】:
以上是关于如何用jdbc在swing中用另一个字段替换外键?的主要内容,如果未能解决你的问题,请参考以下文章