java - 尝试 catch 块不适用于 sql
问题描述
我有以下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 ");
}
似乎从未调用过尝试。
解决方案
您需要执行rs2.next()
以获取第一行(和后续行)。如:
ResultSet rs2 = stmt.executeQuery("select * from teacher");
//rs2.next(); // reads one row!
rs2.first();
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 ");
}
推荐阅读
- database - 如何将数据从 mysql 数据库获取到 Unity 以实现增强现实?
- reactjs - 反应端口 localhost//3001/login not found
- javascript - 谷歌应用脚本 proj4js 库集成
- mysql - 如何按日期小时进行 SQL 分组
- assembly - 如何将信息从寄存器移动到内存?
- math - 随机数生成器,但获得更高数字的机会呈指数级增长
- r - 如何删除R中具有重复列名的列
- logstash - 如何将复杂的遗留日志推送到logstash?
- apache-spark - 在 Spark SQL 查询中使用 F.countDistinct
- html - 居中元素