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