問題點(diǎn):mysql中的varchar 類型但是Java中的ResultSet的方法getString()無法獲取該列的值,而getLong可以獲取:
實(shí)際錯(cuò)誤場景:
eclipse的編譯和運(yùn)行的jdk版本是jdk5.0
mysql 數(shù)據(jù)庫(5.5.27)中有表test,test中的第3列是varchar類型,存儲(chǔ)的是1,第4列也是varchar類型 存儲(chǔ)的是"測試"。
在java工程中創(chuàng)建mysql的jdbc連接 cn,
然后執(zhí)行如下代碼
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));
}
輸出的結(jié)果是:
第三列:
第四列:測試
解決辦法
很明顯這不是我想要的結(jié)果,我想得到第三列中的值1,而輸出結(jié)果是空字符,怎么才能獲取第三列的值呢,經(jīng)過查證有兩個(gè)方法,
第一:rs.getLong(3) 可以獲得值1,但是獲得的是long型的。
第二:修改JDK版本,使用jdk6.0以上版本就可以正常使用了。
哈哈,到此結(jié)束!