簡體   English   中英

MySQL中的Where子句-JAVA

[英]Where Clause in MySQL - JAVA

我是mysql的新手,這是我的問題。 我在數據庫中有一個名為Room的表,其屬性之一為Floor。 在“樓層”列中,有3個不同的名稱(Walters,Gates和Pension)。

我正在嘗試根據所選樓層從表中獲取數字,這是我的查詢。

 String query = "Select * from Rooms where Floor =" + Floor.getSelectedItem().toString();

這似乎是正確的查詢,但我在where子句中說Unknown Column'Walters'時拋出錯誤。

我做錯了嗎?

您的查詢不正確,因為String應該在引號""之間:

String query = 
     "Select * from Rooms where Floor = '" + Floor.getSelectedItem().toString() + "'";
    //----------------------------------^------------------------------------------^

但這並不安全,而是閱讀有關Prepared Statement的內容,以避免SQL Injection和語法錯誤:

String query = "Select * from Rooms where Floor = ?";
PreparedStatement pstmt = con.prepareStatement(query);
pstmt.setString(1, Floor.getSelectedItem().toString());
pstmt.executeQuery();//then execute the statement

查詢中的字符串應使用單引號引起來,您的查詢應為:

Select * from Rooms where Floor = 'Walter';

因此您的代碼應為:

String query = "Select * from Rooms where Floor = '" + Floor.getSelectedItem().toString() + "'";

最好使用PreparedStatements以避免混淆

用這個,

String query = "Select * from Rooms where Floor ='" + Floor.getSelectedItem().toString();+"'"

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM