Java ResultSet的奇怪行为
你好,朋友们,希望你们过得愉快,我在用Java从Mysql数据库获取数据时遇到了一个非常奇怪的问题,方法如下:Java ResultSet的奇怪行为,java,mysql,Java,Mysql,你好,朋友们,希望你们过得愉快,我在用Java从Mysql数据库获取数据时遇到了一个非常奇怪的问题,方法如下: ResultSet tableExistence; . . . while (tableExistence.next()) { System.out.println("before : "+tableExistence.getInt(MyHttpServer.COL_ID)); if(tableExistence.getStri
ResultSet tableExistence;
.
.
.
while (tableExistence.next()) {
System.out.println("before : "+tableExistence.getInt(MyHttpServer.COL_ID));
if(tableExistence.getString(MyHttpServer.COL_STATUS).equals(MyHttpServer.STATUS_AVAILABLE)){
System.out.println("after : "+tableExistence.getInt(MyHttpServer.COL_ID));
...
}
奇怪的是,“before”的值是id的正确值,但是在if方法之后,“after”的值返回类似1234125151231的值,知道为什么会出现这个问题吗 各州:
这些文档确实说“为了最大的可移植性,每行中的结果集列应该按从左到右的顺序读取,并且每列只应该读取一次。”
所以从技术上讲,这是合理的。然而:
- 实际上,我希望任何现代的、支持良好的数据库都允许您以任意顺序多次访问这些列
- 只是返回一个不正确的值,而不是抛出一个异常来表明问题相当严重
- 检查连接和
是否正在从多个线程同时使用ResultSet
- 检查您使用的是最新版本的MySQL驱动程序