在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);
否则报错:
- --- The error occurred in com/ctgusec/zhupan/maps/User.xml.
- --- The error occurred while preparing the mapped statement for execution.
- --- Check the getAllUser.
- --- Check the parameter map.
- --- Cause: com.ibatis.common.beans.ProbeException: There is no READABLE property named 'name' in class 'java.lang.String'
- Exception in thread "main" java.lang.NullPointerException
- at com.ctgusec.zhupan.ExampleMain.main(ExampleMain.java:81)
刚接触ibatis,有说错的地方恳请指正.
MySQL是4.1.22版本。
JDK1.6.0_02。
相关推荐
Dullonjiang 2020-01-23
与卿画眉共浮生 2011-06-25
yierxiansheng 2014-06-18
登峰小蚁 2019-12-24
plane 2017-10-19
踩风火轮的乌龟 2019-10-23
pandapanda 2014-05-08
阿泰 2014-07-02
shouen 2016-04-26
whileinsist 2012-04-07
spprogrammer 2018-01-25
Coohx 2017-12-05
AndroidOliver 2012-05-14
BruceWayne 2014-12-02
liubang000 2014-05-30
KOJ 2013-11-26
CXC0 2013-08-28