gpt4 book ai didi

java - 当 mySQL 命令为大写时,executeQuery 仅适用于查询?

转载 作者:行者123 更新时间:2023-11-29 14:14:15 26 4
gpt4 key购买 nike

我正在开发一个两层java应用程序,它基本上在GUI的JTable中显示mySQL数据库结果。用户在文本区域中输入 mySQL 查询,然后按下“执行命令”按钮,与该命令对应的 mySQL 结果就会出现在 JTable 中。

我遇到的问题是当我尝试输入诸如“SELECT * FROM bikes WHERE COST=10000;”之类的查询时一切都按预期进行并返回结果。但是,如果我输入“select * from bikes where cost=10000;”,则不会返回任何结果,基本上什么也不会发生,甚至不会出现错误。我尝试在查询上运行“toUpperCase()”,但这没有解决问题。

我想知道是什么原因导致了这个问题?我知道 mySQL 不区分大小写,所以即使我的 SELECT 是小写,它也应该可以工作......下面的代码是可能导致问题的区域的片段。

public void setQuery(String query) throws SQLException, IllegalStateException{
if(!connectedToDatabase)
throw new IllegalStateException("Not Connected to Database");


String firstWord = query.substring(0, 6);
if(firstWord.toUpperCase().equals("SELECT")){
resultSet = statement.executeQuery(query);
}
else if(firstWord.toUpperCase().equals("INSERT") || firstWord.toUpperCase().equals("DELETE") || firstWord.toUpperCase().equals("UPDATE")){
statement2.executeUpdate(query);
}

metaData = resultSet.getMetaData();

resultSet.last();
numberOfRows = resultSet.getRow();
fireTableStructureChanged();
}

最佳答案

  • 尝试使用equalsIgnoreCase而不是直接的等于
  • 如果您不知道代码是否进入 if block ,请尝试在该 block 中添加一些日志记录。
  • 假设它正在进入 block ,则查询可能会导致问题。

关于java - 当 mySQL 命令为大写时,executeQuery 仅适用于查询?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12940292/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com