Java 当mySQL命令为大写时,executeQuery仅用于查询?
我正在开发一个两层java应用程序,它基本上在GUI中的JTable中显示mySQL数据库结果。用户在文本区域中键入mySQL查询,然后按下“执行命令”按钮,与该命令对应的mySQL结果将简单地显示在JTable中 我遇到的问题是,当我尝试键入诸如“SELECT*FROM bikes WHERE COST=10000”之类的查询时,所有操作都按预期进行,并返回结果。但是,如果我输入“select*from bikes where cost=10000;”,则不会返回任何结果,基本上不会发生任何事情,甚至不会出现错误。我尝试对查询运行“toUpperCase()”,但没有解决问题Java 当mySQL命令为大写时,executeQuery仅用于查询?,java,mysql,Java,Mysql,我正在开发一个两层java应用程序,它基本上在GUI中的JTable中显示mySQL数据库结果。用户在文本区域中键入mySQL查询,然后按下“执行命令”按钮,与该命令对应的mySQL结果将简单地显示在JTable中 我遇到的问题是,当我尝试键入诸如“SELECT*FROM bikes WHERE COST=10000”之类的查询时,所有操作都按预期进行,并返回结果。但是,如果我输入“select*from bikes where cost=10000;”,则不会返回任何结果,基本上不会发生任何事
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();
}
我想知道是什么导致了这个问题?我知道mySQL不区分大小写,所以即使我选择的是小写,它也应该可以工作。。。
下面的代码是可能导致问题的区域的一个片段
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();
}
- 尝试使用而不是直接的
李>equals
- 如果不知道代码是否进入
块,请尝试在该块中添加一些日志记录李>If
- 假设它正在进入块中,则查询很可能是导致问题的原因