关于mybatis-plus的配置
在mybatis帮我们从数据库中查询数据并自动与java对象映射时,我们在后端执行完一个crud的方法,然后利用mybatis的sql语句打印的配置,在控制台为我们标准打印出我们执行的sql语句,传递的参数,以及sql语句执行后的返回结果。
控制台打印sql的配置:mybatis-plus.configuration.log-impl=org.apache.ibatis.logging.stdout.StdOutImpl
当然,还有两种,slf4j以及log4j,这两种也是logging包下log接口的实现,但个人比较倾向stdOut即标准输出日志。
但今天学习官方文档配置时发现了这个配置:
mybatis-plus.configuration.auto-mapping-behavior
该配置其实指定的是一个枚举类,可指定的值有:NONE,PARTIAL,FULL。
默认情况下使用partial,表示所有的给定方法同数据库查询的未嵌套的结果自动进行一一映射。
尝试在项目中使用一下NONE,你会在所有请求中发现一个神奇的现象。
在未指定该配置之前,会正常读取数据并返回到页面,而加上这个配置后。
虽然说也返回了正确的数据,状态码,但是再看后端打印,发现:
状态码显示:正常,
实体对象显示:Null!!!
不启用自动映射的结果就是这样了。。。。
如果对执行未进行一些判断的话,甚至直接后台报NPE…
所有请求都是如此,回到auto-mapping-behavior,配置FULL时,电脑默认帮我们将实体类字段映射到数据库中,配置PARTIAL时,是只对非嵌套的结果集进行自动映射。而配置None的话表示自己将进行手动映射,
而mybatis的强大之处正在于他的映射语句,让我们可以通过xml文件进行一些sql方法的编写即可完成自己想要的功能,而mybatis-plus对mybatis又是进一步的增强,在xml文件中我们看到生成的mapper.xml映射文件和原来相比,干干净净,将那些mybatis提供的sql方法都自己封装起来,而在这mapper.xml的一亩三分地让我们轻松自定义一些特殊的sql语句,实在是方便。
手动映射的话,那么还需自己在mapper中重新再写。。。。。。还是自己太懒了,最后还是改回来了PARTIAL。。。
希望自己在学习的路上越加努力,现在依然是个小白,坚持,坚持,坚持!!!