SqlMapConfig.xml文件是Mybatis的全局配置文件,它包括properties(属性)、settings(全局配置参数)、typeAliases(类型别名)、typeHandlers(类型处理器)、objectFactory(对象工厂)、plugins(插件)、enviroments(环境集合属性对象)、mappers(映射器)。其中enviroments还包括enviroment(环境子属性对象)、transactionManager(事务管理)、dataSrouce(数据源)这几个子属性,下面分别进行详细介绍。
Properties
首先,全局配置文件的内容如下:
这个全局配置文件的内容目前比较少,随着功能的增加会逐渐变得复杂,这个时候,我们需要把一些专用性的配置属性提取出来,组成单独的配置文件,方便以后的维护。这里,我们在config目录下新建一个db.properties的配置文件,把数据库相关的配置信息提取到它里面,内容如下:
然后,我们利用properties属性把新增的db.properties的配置文件进行加载,后面的数据库属性就可以直接使用db.properties中属性名进行引用即可。如下:
我们还可以在properties属性里面定义property,不过通常不这样使用。
这里需要注意属性的加载顺序和优先级
在properties元素体内定义的属性首先被读取
然后再读取properties元素中resource或url指定配置文件(xx.properties)的属性,并覆盖同名属性
最后读取parameterType传递的属性并覆盖已读取的同名属性。
建议:
不要在properties元素体内添加属性
在xx.properties文件中定义的属性命名要有一定的特殊性,比如命名为:xx.xxx
Settings
Mybatis框架在运行时可以调整一些运行参数。比如开启二级缓存、延迟加载等。全局参数会影响mybatis的行为。遵循:需要的时候再去设置,否则默认即可的原子。
typeAliases
类型别名用在很多地方。比如说在mapper.xml中,定义了很多statement,statement需要parameterTypp指定输入参数类型、需要resultType指定输出结果的映射类型,如果类型全路径太长,不方便开发,可以定义别名,这样在mapper.xml中便可以通过别名来使用,方便开发。Mybatis内置了许多java类型的别名,比如intßàjava.lang.Integer,但是pojo类型需要我们自定义。
首先看下单个别名。别名定义:
别名引用:
批量定义别名,只需要指定包名称,然后自动使用用包下的类的类名称使用即可。批量定义别名:
然后再进行别名引用
typeHandler
类型处理器,mybatis中通过类型处理器来完成jdbc类型和java类型的转换。通常mybatis自带的类型处理器够用了,不需要单独定义。
mapper
映射器,用来加载映射文件,常见的一次加载一个映射文件的方法如下:
也可以通过mapper接口来加载,配置文件和mapper接口类文件需要同名且放在同一个目录:
实体文件位置如下:
多个mapper的加载,通过package批量加载,推荐使用这种方式,方便集中管理。如下:
领取专属 10元无门槛券
私享最新 技术干货