SQLException 错误指出现有列不存在



运行搜索时,我会发现一个sqlexception错误,说找不到我的一列。这是非常令人困惑的,因为我在代码早些时候引用该列,并且该程序可以在此时找到列。我的语法有问题吗?谢谢你!

public void createDB(){    
    String createCharTableSQL = "CREATE TABLE CosplayCharacter (" +
                "CharacterID int NOT NULL primary key GENERATED ALWAYS " +
                "AS IDENTITY (START WITH 1, INCREMENT BY 1), " +
                "name varchar(60) not null," +
                "gender varchar(10)," +
                "genreID int, " +
                "universeID int, " +
                "mediaID int, " +
                "description varchar(60))";
      statement.executeUpdate(createCharTableSQL);
}
public void insertCharacter(){    
  String fetchAllDataSQL = "SELECT * from CosplayCharacter";

    //Code can find the universeID column here
        resultSet = statement.executeQuery(fetchAllDataSQL);
        while (resultSet.next()) {
            String name = resultSet.getString("name");
            int universeCharID = resultSet.getInt("universeID");
            System.out.println("Character Name : " + name +
                    " UniverseID : " + universeCharID);
        }
}
//But returns error here
public void searchCharacter(String characterName){
    String fetchAllDataSQL = "SELECT * from CosplayCharacter where name = '" + characterName +"'";
        resultSet = statement.executeQuery(fetchAllDataSQL);
        while (resultSet.next()) {
            String gender = resultSet.getString("gender");
            int genreID = resultSet.getInt("genreID");
//Method to search a column in a joined table; no error
            String genreName = getGenreName(genreID);
            int universeID = resultSet.getInt("universeID");
   }
}

堆栈跟踪:

 java.sql.SQLException: Column 'universeID' not found.
at org.apache.derby.impl.jdbc.SQLExceptionFactory.getSQLException(Unknown  
Source)
at org.apache.derby.impl.jdbc.SQLExceptionFactory.getSQLException(Unknown Source)
at org.apache.derby.impl.jdbc.Util.generateCsSQLException(Unknown Source)
at org.apache.derby.impl.jdbc.Util.generateCsSQLException(Unknown Source)
at org.apache.derby.impl.jdbc.EmbedConnection.newSQLException(Unknown Source)
at org.apache.derby.impl.jdbc.ConnectionChild.newSQLException(Unknown Source)

结果集已在全球使用。getGenRename方法中使用的结果集覆盖了主搜索查理法中的结果集。解决方案:在每种方法中单独设置结果集变量。

最新更新