下午在宿舍看点程序,顺便做点测试工作,然而,被一个问题就那么卡了一下午。。。。
问题:Mybatis框架进行数据库操作,写了映射XML文件,然后写了dao文件进行操作,最后进行了测试;
dao文件的一个个方法getList方法,顾名思义,是查询数据库获取list,然后相当顺利,直接就对了,心中不免有些小惊喜...然而,灾难性问题在后面。。
接着写insert方法,Dao添加操作方法,进行测试,然而,返回结果 sqlSession.insert("BookMapper.insert",book)>0,但是 调用上面写的getList方法获取的数据却没有新插入的数据,还以为是缓存问题,到数据库一查,然而,数据库也没有结果。。。然后进行了各种测试找问题:把映射文件中的sql语句写成固定语句,然后结果还是一样:返回true,但数据库就是没有新数据,然后就开始网上查找,就这么查了一下午,终于,刚刚七点一刻,网上看到了一些说法,说是事务没提交,然后司马当成活马医,然后就这么找到问题了。。。。
可是可是可是:实习单位的项目里的Dao文件里就通过sqlSession进行了操作,没有进行commit呀?这是为什么呢?
经过查找资料,原来spring 框架的配置文件里可以配置事务管理选项,这样就不用手动事务管理了。。。。。。。。
参考链接:http://kinglixing.blog.51cto.com/3421535/723870