java - 从多个表中检索信息

标签 java sql netbeans

我有 3 个表,分别称为 Drivers、Offenses 和 Points,到目前为止我正在使用 3 个 sql 字符串来插入和更新表中的数据

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 个表?

最佳答案

您的查询大概应该如下所示:

SELECT d.IDNumber, d.FirstName, d.LastName, o.SpeedLimit, o.DriverSpeed, o.SeatBelt, o.DrunkenDriving, o.DriversLicense, p.Points 
  FROM Drivers d
JOIN Offences o on (d.IDNumber = o.IDNumber)
JOIN DriverPoints p on (d.IDNumber = p.IDNumber)
WHERE (...) -- Whathever where condition you like

这将读取所有内容。

要进行更新,您必须执行 3 个不同的更新语句或使用存储过程或 View ,但这实际上取决于您使用的数据库。

编辑:对于插入,我建议您使用PreparedStatements

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

关于java - 从多个表中检索信息,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13011589/

相关文章:

java - Eclipse 中代码清理的快捷键

java - Netbeans GUI 编辑器生成自己难以理解的代码

java - 无法使用java小程序读取文本文件

mysql - 从 View 中的 SQL 子查询返回值列表

java - xpath 内部如何工作?

java - 从属性文件加载不同的集成

java - Spring Security - Ajax 调用忽略@ExceptionHandler

sql - 在 SQL 中使用 LIMIT/OFFSET 进行分页有时会导致不同页面上出现重复项

mysql - 不使用相交运算符重写 SQL 查询

java - 将 Apache Shiro 安全库与基于 Dropwizard 的 JAX-RS 应用程序集成