我有一个成功连接的数据库管理器(简单的电话簿),其中包含一些功能选项,如添加和获取所有条目。现在我需要准备一个Select选项,允许用户在Table中搜索第一个,最后一个或全名。
菜单选项正常,但我在搜索数据库时遇到了一些问题。什么是正确的语法?
我尝试这样的事情没有成功:
resultSet = statement.executeQuery("SELECT * FROM TableName WHERE ColumnName LIKE '%" + nameThatIsBeingSearched + "%');
我收到了com.mysql.jdbc.exceptions.jdbc4.MySQLSyntaxErrorException:'where子句'中的未知列'TABLE_NAME'。
是否可以自动获取列名?只有一列,我很难找到它的名字。
答案 0 :(得分:1)
您可以使用以下语法将扩展添加到SQL查询
String insertSQL = "SELECT * FROM DatabaseName WHERE ColumnName LIKE %?"
PreparedStatement stat = conn.prepareStatement(insertSQL);
stat.setString(1,nameThatIsBeingSearche);
ResultSet rs = stat.executeQuery();
答案 1 :(得分:0)
声明看起来不错。你有什么问题?没有结果或错误的结果?
答案 2 :(得分:0)
你应该替换
resultSet = statement.executeQuery("SELECT * FROM DatabaseName WHERE ColumnName LIKE '%" + nameThatIsBeingSearched + "%');
通过
resultSet = statement.executeQuery("SELECT * FROM TableName WHERE ColumnName LIKE '%" + nameThatIsBeingSearched + "%');
答案 3 :(得分:0)
查询看起来正确,只有DatabaseName应该是表的名称。