发表于: 2017-01-13 23:29:48

1 2179


今天完成的事情:

1、主要解决昨天遗留问题

2、好好学一下spring注解

明天计划的事情:

把重构代码赶紧写完,上传远程服务器,进行任务1下面的内容,尽快结束任务1,已经耽搁不少时间了

遇到的问题:

  这个问题已经折磨我两天了,今天在莎莎师兄的帮助下终于解决了,现在把这两天遇到的问题记录下来,以后避免类似问题。

为了解决昨天的问题,上午又重新写了一个简单的demo测试,但还是碰到许多问题,先是自己粗心大意把StudentMapper.xml文件的resultMap属性的路径写错,报错:

  Failed to parse config resource: class path resource [mybatis/mybatis-config.xml]; nested exception is org.apache.ibatis.builder.BuilderException: Error parsing SQL Mapper      Configuration. Cause: org.apache.ibatis.builder.BuilderException: Error parsing Mapper XML. Cause: org.apache.ibatis.builder.BuilderException: Error resolving class. Cause:  org.apache.ibatis.type.TypeException: Could not resolve type alias 'com.oeasy.entity.Student'.  Cause: java.lang.ClassNotFoundException: Cannot find class:  com.oeasy.entity.Student

导致修改后,又报:

  Failed to convert property value of type 'java.lang.String' to required type 'java.lang.Class' for property 'mapperInterface'; nested exception is    java.lang.IllegalArgumentException: Cannot find class [com.easy.mapper.StudentMapper]

这个问题是说找不到StudentMapper类,但是我并没有写过这个类,很长时间找不到原因,知道看到有资料讲到MapperFactoryBean类的mapperInterface属性,这个属性应该赋值为Dao接口,我并不知道这个用法结果把mapper赋给它了导致错误,修改后测试成功。

接着昨天的项目照着这个demo修改后测试正常,但是这个demo只是不用注解的方式,最终还是需要用注解的方式。经过各种折腾才测试成功。

1)不使用注解的单元测试:

application.xml部分代码

mybatis配置文件部分需要配置;

单元测试部分需要通过@before初始化

这样就可以了。

2)使用注解进行单元测试时

application.xml部分代码

mybatis配置文件部分需要配置;

要注意的是,用注解时不需要mapper属性,加上的话反而造成重复报错:

但是不用注解时如果没mapper会报 Invalid bound statement (not found): com.oeasy.dao.StudentDao.getAll错。


另外,使用注解进行单元测试因为测试类是继承了测试基类SpringTestCase

所以,测试类不需要用@Before进行初始化

收获:

1、spring配置文件中,配置数据源两种方式

  1)不使用properties配置

  2)使用properties配置

2、这两天被这个问题折腾了不少时间,今天解决之后,对mybatis和spring框架都熟悉了不少,也算是不错的收获吧。

3、今天还重新学了一下spring注解方面的知识,主要参考了下面一篇文章,感觉还不错,把链接贴在下面。


 参考文章



返回列表 返回列表
评论

    分享到