2012-10-22 24 views
0

我有3个表,叫司机,犯罪和点和SOFAR我使用3个SQL字符串中的每个表coneccted海誓山盟通过表从多个表

String command1 = "INSERT INTO Drivers (IDNumber, FirstName, LastName) VALUES" + drivID + FName + LName; 
String command2 = "INSERT INTO Offences(IDNumber, SpeedLimit, DriverSpeed, SeatBelt, DrunkenDriving, DriversLicense) VALUES" + drivID + intspeed + intDSpeed + strSeat + strDrunk + strLicense; 
String command3 = "INSERT INTO DriverPoints(IDNumber, Points) VALUES" + drivID + intpoints; 

中插入和更新数据检索信息主键IDNumber

有没有一种方法,而不是有3个Sql命令/字符串,我可以只有1,但仍然能够插入和更新所有3个表?

+0

首先,你所有的3个查询在语法上都是不正确的。其次,为什么你需要让他们在单个字符串变量?因为这完全不会减少你的输入。我建议你首先练习每个字符串的单个查询。 –

+0

您可以通过连接一起阅读所有内容,但您必须处理它。你使用哪个数据库? – BigMike

+0

我有一个文本框和一个java应用程序中的复选框,我想要使用来自数据库的信息进行更新,并通过使用相同的控件更新数据库中的数据。 –

回答

1

Roughtly您的查询应该是这样的:

​​

这将读到的一切。

对于更新,您必须执行3个不同的更新语句或使用存储过程或视图,但这取决于您正在使用的数据库。

编辑:用于插入我建议你使用的PreparedStatement

String command1 = "INSERT INTO Drivers (IDNumber, FirstName, LastName) VALUES (?, ?, ?)"; 
PreparedStatement ps = connection.prepareStatement(command1); 
ps.setInteger(1, drivID); 
ps.setString(2, FName); 
ps.setString(3, LName); 
ps.execute(); 
1

编写Stored Procedure

但是为了使其与平台无关,您应该使用ANSI SQL语法。

根据BigMike的评论,你也可以创建一个视图。 This将创建一个视图更多的光线。

+1

为什么不是一个视图? – BigMike

+1

是的,视图也是一个解决方案,我会将其添加到我的答案。 – Azodious

+0

并非所有数据库都支持对视图的更新。 – Randy

0

您不能插入到多个表中有一个说法,所以简单的答案是否定的。您需要三条语句才能插入三个表格。

而且,你的语法需要更多这样的:
String command1 = "INSERT INTO Drivers (IDNumber, FirstName, LastName) VALUES (" + drivID + ", " + FName + ", " + LName + ")";

注意添加逗号和括号。

此外,您可以将所有语句放入一个查询,如果这是您的意思。