java - MySQL 中的 Where 子句 - JAVA

标签 java mysql jdbc

我是 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/

相关文章:

java序列化工作异常?

java - WebView 关闭后不再工作

mysql - Rails 最佳实践 : Constants for model ids, 或 find_by 或 where 查询?

php - MySQL 表连接建议

java - 在 DAO 中使用准备好的语句检索数据时出现问题

java.lang.UnsupportedOperationException : DROP CONSTRAINT is only supported for Hibernate

java - JDBC mysql meta.getExportedKeys() 返回空结果集

java - RxJava 2 : How to filter items of infinite stream that emits "List<Item>"?

java - 当 Spring Boot Test WebEnvironment 设置为 RANDOM_PORT 时如何为 Ribbon 配置服务器列表

php - Joomla, Mysql 错误