搜索JDBC以进行输入

时间:2014-03-07 20:12:49

标签: java mysql jdbc

我有一个成功连接的数据库管理器(简单的电话簿),其中包含一些功能选项,如添加和获取所有条目。现在我需要准备一个Select选项,允许用户在Table中搜索第一个,最后一个或全名。

菜单选项正常,但我在搜索数据库时遇到了一些问题。什么是正确的语法?

我尝试这样的事情没有成功:

resultSet = statement.executeQuery("SELECT * FROM TableName WHERE ColumnName LIKE '%"     + nameThatIsBeingSearched + "%');

我收到了com.mysql.jdbc.exceptions.jdbc4.MySQLSyntaxErrorException:'where子句'中的未知列'TABLE_NAME'。

是否可以自动获取列名?只有一列,我很难找到它的名字。

4 个答案:

答案 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应该是表的名称。