3,springboot集成mybatis
紧接前面1,springboot-简单项目搭建和2,springboot集成数据库,下面就省去数据源如何配置:
可以查看2,springboot集成数据库,里面有数据源如何配置。
1,引入mybatis相关的jar包
这个jar包的作用,可以去网上搜索,基本就是让mybatis集成到springboot非常之方便,下面也看的出来;
比如我参考的这个:https://blog.csdn.net/crq1205/article/details/88040582
- 自动检测现有的DataSource
- 将创建并注册SqlSessionFactory的实例,该实例使用SqlSessionFactoryBean将该DataSource作为输入进行传递
- 将创建并注册从SqlSessionFactory中获取的SqlSessionTemplate的实例
- 自动扫描您的mappers,将它们链接到SqlSessionTemplate并将其注册到Spring上下文,以便将它们注入到您的bean中
- 等等
我把2,springboot集成数据库中配置的druidDataSource注释了,之后数据库连接仍然能使用,使用的是springboot默认的数据库连接池HiKariPool;
我把2,springboot集成数据库中配置的druidDataSource注释打开,使用的数据源就是就是自己配置的druidDataSource
具体原因,可以等以后多数据源的时候分析;
2,配置扫描数据库(mapper)接口
3,application.yml配置mapper的xml文件
不使用xml而使用@Insert、@Select等,此处不介绍;
4,mapper.xml
5,效果
写在最后,遇到的问题:
1,各种映射的地方要写准了,不然会出错:No mybatis mapper was found
比如,我之前没有把xml放在resources文件夹下,而是放在了java文件夹下,应该有问题;
我把这里写成了mapper/*.xml,少了中间的*;
其他情况:我这里可以不用这样 -> ;
->这里也可以不用配到具体dao接口上级的包,可以是上级的上级;
2,service层注入dao层依赖失败
但这个感觉是骗人的,因为项目正常启动和使用;如果看这个告警不爽,换成@Resource也是正常启动和使用:
两个注解区别,网上说@Autowired是根据类型(class?)注入,@Resource是根据名称注入,如果失败,再根据类型注入;
还有其他方式,解决这个告警。