日期:2014-05-16  浏览次数:20631 次

mysql中的varchar 类型但是Java中的ResultSet的方法getString()无法获取该列的值
问题点: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以上版本就可以正常使用了。