1.
发现sqljdbc.jar包有个小bug
String sql = "select null as testDate";
rs.getTimestamp(1);//这句话会报错噢应该返回null才对
这个问题害死我了,花费n长时间把ibaits源码搬出来跟踪到最后发现是这个,倒!
com.syj.jdbc.DataAccessException: com.microsoft.sqlserver.jdbc.SQLServerException: 不支持从 int 到 TIME 的转换。
mssqlserver.jar
msutil.jar
msbase.jar
这三个驱动包不存在此问题2.
jdk1.4.2_04环境,5.0以上没有这个问题了。
for (int i = 0; i < 100; i++) {
Random random = new Random();
int t=Math.abs(random.nextInt());//一直都是一个数,晕
}不一定是bug,大家可验证下。
 

解决方案 »

  1.   

    Random random = new Random(); 放到循环外面去,因为机器太快了,用毫秒做种子,结果每个种子都一样了
      

  2.   

    可以用
    (Timestamp)rs.getObject(1);
      

  3.   

    目前公司使用的ibatis为2.1.7 build# 597不知道高版本有异常处理没,报出来的错太难以分析了,今天是一直跟踪到最下面一层代码发现的。
      

  4.   

    目前公司使用的ibatis为2.1.7 build# 597不知道高版本有异常处理没,报出来的错太难以分析了,今天是一直跟踪到最下面一层代码发现的。
      

  5.   


        确实是因为太快了,1.4源码 
        public Random() { this(System.currentTimeMillis()); }
        5.0/6.0源码
        public Random() { this(++seedUniquifier + System.nanoTime()); }
        public Random() { this(++seedUniquifier + System.nanoTime()); }