問題點:mysql中的varchar 類型但是Java中的ResultSet的方法getString()無法獲取該列的值,而getLong可以獲取:
實際錯誤場景:
eclipse的編譯和運行的jdk版本是jdk5.0
mysql 數據庫(5.5.27)中有表test,test中的第3列是varchar類型,存儲的是1,第4列也是varchar類型 存儲的是"測試"。
在java工程中創建mysql的jdbc連接 cn,
然后執行如下代碼
Statement stat =cn.createStatement();
ResultSet rs = stat.executeQuery("select * from test")
while (rs.next())
{
System.out.println("第三列:"+rs.getString(3));
System.out.println("第四列:"+rs.getString(4));
}
輸出的結果是:
第三列:
第四列:測試
解決辦法
很明顯這不是我想要的結果,我想得到第三列中的值1,而輸出結果是空字符,怎么才能獲取第三列的值呢,經過查證有兩個方法,
第一:rs.getLong(3) 可以獲得值1,但是獲得的是long型的。
第二:修改JDK版本,使用jdk6.0以上版本就可以正常使用了。
哈哈,到此結束!