【发布时间】:2018-06-13 20:04:22
【问题描述】:
我有以下java代码:
ResultSet rs2 = stmt.executeQuery("select * from teacher");
try
{rs2.getInt("fee");
System.out.println("found");
stmt.executeUpdate("alter table teacher drop fee ");
}catch(SQLException e){
System.out.println("not found");
System.err.print(e);
stmt.executeUpdate("alter table teacher add fee int ");
}
try 似乎从未被调用过。
【问题讨论】:
-
您确定
executeQuery会毫无例外地返回吗?也许控制流甚至没有到达try。 -
请发布堆栈跟踪。
-
如果您要检查数据库列是否存在,我建议使用DatabaseMetaData 而不是查询数据库表的内容
-
不确定这是否是堆栈跟踪:java.sql.SQLException:结果集结束后com.mysql.jdbc.exceptions.jdbc4.MySQLSyntaxErrorException:重复列名'fee'
-
另外,
stmt.executeUpdate在更改表格时可能不是正确的调用;我会改用stmt.execute;更多的是通用用例