springboot适合快速开发,和springmvc有很大相关性,及敏捷开发的特性,在spring boot框架下整合mybatis也比springmvc中简单。
基本步骤:
1.在resources目录在定义mybatis-config.xml,使用MaperScan注解声明mapper类。
2.在springmvc中mybatis中有一个重要的类:sqlSesion,这个类为我们封装了很多方法,springboot中我们不用创建该对象。
3.在开发spring boot项目过程中,安找视频中的coding,但是基于xml文件的mapper文件出错,报错信息为:spring boot Invalid bound statement no root cause.在网上也查询了好多,最终添加了:mybatis.config-location=classpath:mybatis-config.xml就好了,说明之前idea没有找到xml文件。但是,在视频教程的example中却没有,这个问题很值得思考,这种错误都是配置文件错误。
4.这是mybatis中的一个fragment,系统报错后提示我看的;
<mappers>
<mapper resource="org/mybatis/example/BlogMapper.xml"/>
</mappers>
犹豫基础知识掌握不牢,犯了很多低价错误,你应该明白了很多吧。
5,在spring mvc中,要手动引入mybatis的类,并且生成sqlsesion对象,使用Inputstream读入配置文件,与之相比,spring boot确实简单了很多。
Springboot整合mybatis的代码实现:
在没有配置数据库时,注释这样@SpringBootApplication(exclude = {DataSourceAutoConfiguration.class})
接下来我们DataSourceAutoConfiguration,看看他做了什么工作。
1.Mybatis的配置文件和部署掌握了,crud,maper接口和xml文件学会了,但是对于设计reslutMap等多表操作,理解起来还是有点吃力。这个就需要补补基本功了,多写一些sql脚本才行啊。为啥要使用mybatis呢?为了自动实现orm,否则就要自己从ResultSet中取数据,与之相配套,我们就需要写entity,这样代码量虽然多了,但是层次更清晰了。在orm阶段,还有一个问题要注意,就是mysql的数据类型对应java中的什么对象,最常见的就是datatime对应java.util.Date;
2.mybatis和springmvc或者spring boot的集成:其中集成的模块mybatis的开发者已经开发出来了,我们要做到就是在项目中指定要使用mybatis及引入相应的jar就可以了。具体怎么引入,这个过程spring boot基本不用做什么,而springmvc则要声明和生成相关的类,比如sqlSession
3.有时候报了create bean错误,大概是class文件和xml文件没有编译在一起。这时应该去target目录下查看,这就是小白和高手的差别,当报错时,高手明白原理,能够去定位错误。
4、“Invalid bound statement (not found) ”,而且报错的都是 MybatisPlus 生成的 BaseMapper 中的方法
5、@MapperScan一定要精确到具体的包,它是会注册包下面所有的接口,如果配置不对就会报错。
参考资料: