2012-10-28 47 views
0

我正在开发包含具有8个列的表的GUI,(A,B,C,d,E,F,G)插入多个表和填充GUI表

在数据库我有两个表。表1包含(A,B,C,D,E +),表2包含(E,F,G)。这里E +是FK到Table1。

现在我想插入使用预处理语句,然后弹出GUI表。我正在写插入查询如下。表1中的E + FK是为了突出表2的值。

insert into table1 (a,b,c,d,e,f,g) values (?,?,?,?,(select t2.E from t2 where t2.E=2) 

ps.setString(1,a) 
ps.setString(2,b) 
ps.setString(3,b) 
... 

通过使用上面的查询,我无法插入到DB以及GUI表中。请让我知道正确的查询。

回答

0

你的问题是相当混乱:

我正在开发包含具有8个列,(A,B,C,d,E,F,G)

的表的GUI这使得7列,而不是8.

在数据库中我有两个表。表1包含(A,B,C,D,E +),表2包含(E,F,G)。这里E +是FK到Table1。

为什么Table1中包含一个外键?

插入到表1(A,B,C,d,E,F,G)

你怎么能想象这会工作,因为表1中没有任何一个名为E列, f和g?


首先,将数据库的东西从GUI的东西分成不同的类。这两个方面不应该混合在一起。

然后了解SQL。如果要插入2个表中,则需要2个插入语句:一个插入到table1中,另一个插入到table2中。如果FK位于table2中,则第一个插入必须是table1中的插入,因为table2中的FK必须引用table1中存在的行。

+0

谢谢。我很好,插入2插入语句。但如何在GUI中显示这些值...其中有8 coulmns(A,B,C,D,E,F,G,H) –

+0

而且我想我应该使用2准备语句 –

+0

使用查询选择所有(假设你在table1和table2之间有一对一的关联):'select t1.a,t1.b,t1.c,t1.d,t1.e,t2.f,t2.g从table1 t1内部连接table2 t2在t1.e = t2.e其中...' –