介绍完了与数据库表的CURD有关的标签以后,下面简单的介绍一下常用的配置标签。MyBatis的行为设置和属性信息可以通过在MyBatis配置文件中或者Spring Boot的配置文件中进行设置。在MyBatis中,通常使用mybatis-config.xml文件来配置这些属性。而在Spring Boot中,可以通过在application.properties或application.yml文件中添加相应的配置属性来进行设置。在这里,我们以mybatis-config.xml文件xml的配置方式介绍一些标签。其实不管是在application.properties或application.yml文件中,其本质原理是一样的,可以这么说,xml中的节点是跟application.properties或application.yml文件中的属性写法一一对应的。所以初学者可以按照网络教程选择一种方式入门使用,尽量自己熟悉的方法。待用的多了,时间久了,其他方式也就知其原理了。我一直认为xml的写法虽然比较笨重和配置文件众多,但是这种结构化的写法很容易理解,只是现代的集成化框架把一些配置简化了,一个注解或者一行属性对就搞定了很多。
<configuration><settings><!-- 设置sql参数 如果java属性为空需要这样配置进行转换成sql的null,因为mybatis没有提供java中null类型的转换器--><settingname="jdbcTypeForNull"value="NULL"/><settingname="logImpl"value="STDOUT_LOGGING"/><settingname="mapUnderscoreToCamelCase"value="true"/></settings><plugins><!-- 分页拦截器--><!-- com.github.pagehelper为PageHelper类所在包名--><plugininterceptor="com.github.pagehelper.PageInterceptor"></plugin></plugins></configuration>
jdbcTypeForNull:当没有为参数指定特定的 JDBC 类型时,空值的默认 JDBC 类型。 某些数据库驱动需要指定列的 JDBC 类型,多数情况直接用一般类型即可,比如 NULL、VARCHAR 或 OTHER。一般使用的是NULL,即允许我们的po类的属性值时空的,这样才能插入到数据表里,当然表里的也会是空的,不配置的话会出错。
mapUnderscoreToCamelCase:是否开启驼峰命名自动映射,即从经典数据库列名 A_COLUMN 映射到经典 Java 属性名 aColumn。
logImpl:指定 MyBatis 所用日志的具体实现,未指定时将自动查找。排查sql问题,打印sql语句很有帮助,一般在开发阶段开启即可。
Plugins:插件配置,一般使用到的是分页插件。
其实Mybatis的配置项还有很多:
properties设置数据源或连接池属性的
settings也包含很多,大家面试或者有可能实际使用到的一级二级缓存就在这里面配置,平时没用到这块,都是默认值,做缓存也是使用redis在业务层实现了。
typeAliases是给pojo类起一个别名的,现在使用不多了,一般是注解
plugins可以实现很多的插件
mappers是包含很多与具体业务操作相关的映射文件,就是包含curd这些标签的xml,现在使用也不多了,要么是通过注解扫描要么通过java代码的方法指定扫描
typeHandlers在做blob,clob这种类型转换的时候需要,做文件上传存储使用的,现在很少把文件存到数据库里了,也不建议存到数据库里,使用也少了。其他的类型转换主要是日期时间类型,这块用的也不多,碰到可以查询使用方法。
其他的objectFactory、environments和databaseIdProvider使用不多,如果想学习,可以参考mybatis的官方文档深入了解。