在ibatis的入门例子中就被卡住了

近来开始学习ibatis,好不容易找了些入门资料,却没想到ibatis的第一个例子上就卡住,先是从ibatis官方下的petstore5在resin-pro-3.0.22上运行不起来。

然后就是《ibatis开发指南》(夏昕: xiaxin(at)gmail.com)的第一个例子,代码照着敲进来,也不见能起来。

然后在JE上找到了这个

http://www.iteye.com/post/148076 (温柔一刀

这个还不是很坏,能运行,然而getAllUser读出来的记录数总是0,而数据库是有数据的。

这个User.xml中查询的配置代码:

try {    
    
    sqlMap.startTransaction();                  
    
    user=sqlMap.queryForList("getAllUser", null);    
    
    sqlMap.commitTransaction();    
    
} catch (SQLException e) {    
    
    System.out.println(e.getMessage());    
    
} finally {    
    
    try {    
    
        sqlMap.endTransaction();    
    
    } catch (SQLException e) {    
    
        e.printStackTrace();    
    
    }    
    
}  

测试了几次取不到结果。开始找原因,

先是把

user=sqlMap.queryForList("getAllUser", null);  

中的参数null改成user2(新创建的一个User对象,其他setName("数据库中已存在字段值")),可以取到那条记录。

可以这里有个小问题,放后面说!!!!!!

第二种尝试,把User.xml中ID为getAllUser的SQL改成查询所有记录,这样可以取到所以的记录。

user=sqlMap.queryForList("getAllUser", "某条记录name的值");  
User user2 = new User();    
    
user2.setName("某条记录name的值");    
    
try {    
    
    sqlMap.startTransaction();                  
    
    user=sqlMap.queryForList("getAllUser", user2);    
    
    sqlMap.commitTransaction();    
    
} catch (SQLException e) {    
    
    System.out.println(e.getMessage());    
    
} finally {    
    
    try {    
    
        sqlMap.endTransaction();    
    
    } catch (SQLException e) {    
    
        e.printStackTrace();    
    
    }    
    
}  

这两个都可以正常取到那条记录。

如果User.xml是:

user=sqlMap.queryForList("getAllUser", user2);  

否则报错:

  1. --- The error occurred in com/ctgusec/zhupan/maps/User.xml.     
  2. --- The error occurred while preparing the mapped statement for execution.     
  3. --- Check the getAllUser.     
  4. --- Check the parameter map.     
  5. --- Cause: com.ibatis.common.beans.ProbeException: There is no READABLE property named 'name' in class 'java.lang.String'   
  6. Exception in thread "main" java.lang.NullPointerException   
  7.     at com.ctgusec.zhupan.ExampleMain.main(ExampleMain.java:81)  

刚接触ibatis,有说错的地方恳请指正.

MySQL是4.1.22版本。

JDK1.6.0_02。

相关推荐