Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/343.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 在JDBC中搜索条目_Java_Mysql_Jdbc - Fatal编程技术网

Java 在JDBC中搜索条目

Java 在JDBC中搜索条目,java,mysql,jdbc,Java,Mysql,Jdbc,我有一个成功连接的数据库管理器(简单电话簿),带有一些功能选项,如添加和获取所有条目。现在我需要准备一个Select选项,它允许用户在表中搜索第一个、最后一个或全名 菜单选项正在工作,但我在数据库中搜索特定名称时遇到了一些问题。正确的语法是什么 我正在尝试这样的事情却没有成功: resultSet = statement.executeQuery("SELECT * FROM TableName WHERE ColumnName LIKE '%" + nameThatIsBeingSea

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

菜单选项正在工作,但我在数据库中搜索特定名称时遇到了一些问题。正确的语法是什么

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

resultSet = statement.executeQuery("SELECT * FROM TableName WHERE ColumnName LIKE '%"     + nameThatIsBeingSearched + "%');
我得到一个com.mysql.jdbc.exceptions.jdbc4.MySQLSyntaxErrorException:where子句中的未知列“TABLE_NAME”


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

这句话看起来不错。你有什么问题?没有结果或结果错误?

您应该更换

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


查询看起来是正确的,只有DatabaseName应该是表的名称。

您可以使用以下语法向sql查询添加放大

 String insertSQL = "SELECT * FROM DatabaseName WHERE ColumnName LIKE %?"
            PreparedStatement stat = conn.prepareStatement(insertSQL);
            stat.setString(1,nameThatIsBeingSearche);          
            ResultSet rs = stat.executeQuery();

嗯,你的桌子叫什么名字?如果在select子句中只有一列可以始终使用*。TableName是PhoneBook。尝试:resultSet=statement.executeQuery(“从电话簿中选择*,其中*类似“%”+name+“%”);并让com.mysql.jdbc.exceptions.jdbc4.MySQLSyntaxErrorException检查在“*”附近使用的语法是否正确,如“%John%”啊抱歉,*只适用于select子句,而不适用于where部分。你仍然需要知道那里的列名。找出名称!谢谢
 String insertSQL = "SELECT * FROM DatabaseName WHERE ColumnName LIKE %?"
            PreparedStatement stat = conn.prepareStatement(insertSQL);
            stat.setString(1,nameThatIsBeingSearche);          
            ResultSet rs = stat.executeQuery();