我有三张table firm
, shipp
以及 supplier
.
所有三列的列名与 id
, name
, city
... 其他。
我用java编写了一个连接:
String Query = "SELECT s.name Sname,s.city Scity,f.name Fname,f.city Fcity,"
+"su.name Suname,su.city Sucity "
+"FROM `order_details` ot "
+"INNER JOIN `order` o ON ot.odr_id = o.odr_id "
+"INNER JOIN `product` p ON ot.pro_id = p.id "
+"INNER JOIN `firm` f ON o.firm_id = f.id "
+"INNER JOIN `shipp` s ON o.shipp_id = s.id "
+"INNER JOIN `supplier` su ON o.sup_id = su.id ";
``` `product` , `order` 以及 `order_details` 是join中使用的其他表。
此查询在phpmyadmin中工作。
但在 java `ResultSet` 给出“找不到列'sname'。错误。
我尝试过以下解决方案,但这些方法对我无效:
1) java.sq.sqlexception:找不到列
2) 奇怪的sqlexception:找不到列
3) 很多其他人,但没有人工作
错误堆栈:
java.sql.sqlexception:找不到列“sname”。
在com.mysql.jdbc.sqlerror.createsqlexception(sqlerror。java:1074)
在com.mysql.jdbc.sqlerror.createsqlexception(sqlerror。java:988)
在com.mysql.jdbc.sqlerror.createsqlexception(sqlerror。java:974)
在com.mysql.jdbc.sqlerror.createsqlexception(sqlerror。java:919)
以及:
严重:空
请帮帮我!
提前谢谢。
## 编辑1:
问题再现:
当我只从一个别名表(例如。 `shipp` )然后它会很好地获取数据:
SELECT s.name Sname,s.city Scity ... other query part
但一旦我 `SELECT` 来自其他别名表的列(例如。 `shipp` , `firm` ,和 `supplier` )然后抛出上面写的错误异常(找不到列)。
SELECT s.name Sname,s.city Scity,f.name Fname,f.city Fcity,
su.name Suname,su.city Sucity ... other query part
注意:此查询在phpmyadmin中运行良好,但没有与一起运行 `ResultSet` 取回。
这就是我如何从 `ResultSet` ( `rs2` ):
String firstColumn = "";
String secondColumn = "";
while(rs2.next()) {
firstColumn = "Shipp to : ";
firstColumn += rs2.getString("Sname") + rs2.getString("Scity") ;
firstColumn += "Person : " + rs2.getString("Fname") +"+ "+ rs2.getString("Fcity");
secondColumn = "Supplier : " + rs2.getString("Suname");
secondColumn += rs2.getString("Suname");
secondColumn += rs2.getString("Sucity");
}
2条答案
按热度按时间fbcarpbf1#
根据您的错误信息,我假设您正在使用
MySQL
使用最新的连接器。如果需要,可以使用位置查询,这是使用可以在哪个位置上找到元素的编号,例如:
(是的,编号从1开始……)它应该与此等效(当然没有大写问题):
这样,您只需知道位置,但如果您查看数据库/驱动程序中的大小写敏感度,则基本上就是设置问题。为了解决大多数问题,如果可能的话,我用大写字母写我的查询,并且不打勾。
探索你的
ResultSet
对象请尝试以下操作:此代码段将首先打印由您使用的驱动程序返回的列和值。
kx7yvsdv2#
请检查是否已导入正确的jdbc连接包
com.mysql.jdbc.connection
. 你本可以进口的java.sql.connection
而是像这里一样