3

過去6〜7時間、これに対する解決策を検索/グーグル/実験してきましたが、これまでのところ結果はありません.

PHPMYADMINで完全に機能するSQL文字列(以下)がありますが、Java実行では機能しません。クエリを実行しようとすると、「Columnrid Not Found」が表示されます。

SQL例外:

java.sql.SQLException: Column 'rid' not found.
at com.mysql.jdbc.SQLError.createSQLException(SQLError.java:1078)
at com.mysql.jdbc.SQLError.createSQLException(SQLError.java:989)
at com.mysql.jdbc.SQLError.createSQLException(SQLError.java:975)
at com.mysql.jdbc.SQLError.createSQLException(SQLError.java:920)
at com.mysql.jdbc.ResultSetImpl.findColumn(ResultSetImpl.java:1167)
at com.mysql.jdbc.ResultSetImpl.getInt(ResultSetImpl.java:2851)
at net.matthewauld.racetrack.server.WrSQL.getJSONClassSpecificRiders(WrSQL.java:41)
at net.matthewauld.racetrack.server.ClientListener.parseCommand(ClientListener.java:110)
at net.matthewauld.racetrack.server.ClientListener.run(ClientListener.java:42)

--

SELECT * FROM `riders` WHERE EXISTS(SELECT * FROM `ridersclasses` WHERE ridersclasses.rid = riders.id AND `cid` = '6') ORDER BY `first_name` ASC

これは、SQL クエリを実行するための私の Java コードです。

url = "jdbc:mysql://127.0.0.1:3306/racetrack2013?allowMultiQueries=true";
con = DriverManager.getConnection(url, user, password);
st = con.createStatement();
rs = st.executeQuery(query);

以下に、2 つのテーブルの構造といくつかのデータ例を掲載します。

ライダークラス

+---------------------------------------------------+
|                   ridersclasses                   |
+---------------------------------------------------+
|  ID  |  RID  |  CID  |  BIKENUMBER  |  BIKEMODEL  |
+---------------------------------------------------+

ライダー

+----------------------------------------------------------------------------------+
|                                         Riders                                   |
+----------------------------------------------------------------------------------+
|  ID  |  first_name  | last_name  |  address  |  city_id  |  h_phone  |  c_phone  |
+----------------------------------------------------------------------------------+
4

1 に答える 1

6

問題は単純です。テーブルridに列がありません。riders

strack トレースに示されているように、問題は次の場所から始まります。getInt

だからrs.getInt("rid")使用する代わりにrs.getInt("id")

于 2013-06-14T06:47:32.967 に答える