环境
JDK:JDK 1.8
IDE: IDEA 2020.1
浏览器: Chrome
测试:apizza
文件配置关系
- User
- Service
- Mapper
- mapper.xml
所遇问题
配置好映射路径,利用xml映射是没有问题的。
#配置mybatis规则
mybatis:
mapper-locations: classpath:mybatis/mapper/*.xml
configuration:
map-underscore-to-camel-case: true
在使用注解@Select并进行查询时,出现了问题:
Error creating bean with name xxService
然后根据提示发现是没有办法创建相关的Service,大胆猜测是找不到相关的mapper文件。
Service中调用了SQL方法。
解决方法
把yaml文件中的相关mybatis 配置文件位置的注释掉就可以正常运行。(其实这个也不算解决,可能是IDEA之前的运行环境出现了某种不同寻常的问题,导致不能正常运行)
后续
但是,这个时候还有一个问题,如果SQL语句比较复杂,在注解中不好直接写的话,我们还得使用xml文件进行映射配置,那么这个时候是否就没有办法使用注解了呢(毕竟前文把yaml文件中的相关配置已经注释掉了)。
于是我就试了试又去除yaml文件中的注释,然后又在mapper.xml文件中配置了相关的SQL执行方法(insert 表单User信息)。但是这个时候再进行测试,发现提交方式为Get的Select方法可用,而提交方式为Post的insert方法也可用。
猜测原因
通过后续中的再次放入一个无注解方法,同时又取消了注释,可以看出yaml中的配置是不影响注解的。
但是却出现了意料之外的惊喜,我个人猜测可能是因为之前IDEA心情不太好,之后又像没事人一样。当然这个原因也不是我瞎猜的,之前使用awesome-font 图标库出现框框,让我也是检查了半天都没发现个所以然,结果第二天开机运行就好了!