我是 mysql 的新手,这是我的问题。我在数据库中有一个名为 Room 的表,其属性之一是 Floor。在 Floor 列中,有 3 个不同的名称(Walters、Gates、Pension)。
我正在尝试根据所选楼层从表中获取数字,这是我的查询。
String query = "Select * from Rooms where Floor =" + Floor.getSelectedItem().toString();
这似乎是正确的查询,但我收到一个错误,在 where 子句中提示 Unknown Column 'Walters'。
我做错了什么?
最佳答案
您的查询不正确,因为字符串应该在引号 ""
之间:
String query =
"Select * from Rooms where Floor = '" + Floor.getSelectedItem().toString() + "'";
//----------------------------------^------------------------------------------^
但这不安全,而是阅读 Prepared Statement避免 SQL 注入(inject)和语法错误:
String query = "Select * from Rooms where Floor = ?";
PreparedStatement pstmt = con.prepareStatement(query);
pstmt.setString(1, Floor.getSelectedItem().toString());
pstmt.executeQuery();//then execute the statement
关于java - MySQL 中的 Where 子句 - JAVA,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46138510/