你好伙伴们希望你度过愉快的一天,我在Java中使用Mysql数据库获取数据时遇到了一个非常奇怪的问题:
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));
...
}
奇怪的是,“之前”的值是id的正确值,但是在if方法之后,“after”的值返回了一些像1234125151231的东西,任何想法为什么会出现这个问题?!!!! < / p>
答案 0 :(得分:0)
文档确实说&#34;为了获得最大的可移植性,每行中的结果集列应该按从左到右的顺序读取,每列应该只读一次。&#34;
从技术上讲,它有点合理。但是:
如果您正在获取clob或blob,可能会有一种解释 - 驱动程序可能在这种情况下决定&#34;只从左到右&#34;更合理,避免在内存中保留太多数据。它只是返回损坏的数据仍然不是很好。
因此,虽然这是可能的答案,但我还是:
ResultSet
是否同时从多个线程中使用