弹簧+ SpringMVC + MyBatis深入学习及搭建(三)之MyBatis全局配置文件解析

  

前面有写到春天+ SpringMVC + MyBatis深入学习及搭建(二)——MyBatis原始刀开发和mapper代理开发

  

MyBatis的全局配置文件SqlMapConfig.xml,配置内容和顺序如下:

  

属性(属性)

  

设置(全局配置参数)

  

typealias(类名别名)

  

typeHandlers(类名处理器)

  

objectFactory(对象工厂)

  

插件(插件)

  

环境(环境集合属性对象)

  

环境(环境子属性对象)

  

transationManager(事务管理)

  

数据源(数据源)

  

映射器(映射器)

  

  

需求:   

将数据库连接参数单独配置在db.properties中,只需要在SqlMapConfig.xml中加载db.properties的属性值。在SqlMapConfig.xml中就不需要对数据库连接参数硬编码。

  

将数据库连接参数只配置在db.properties中,原因:方便对参数进行统一管理,其xml可它以引用该db.properties。

  

在类路径下定义db.properties文件:

        jdbc.driver=com.mysql.jdbc.Driver   jdbc.url=jdbc \: mysql \://localhost \: 3306/mybatisdemo   jdbc.username=根   jdbc.password=      

在SqlMapConfig.xml加载属性文件:

        & lt; & # 63; xml version=" 1.0 " encoding=" utf - 8 " & # 63;比;   & lt; !DOCTYPE配置   公众”——//mybatis.org//DTD配置3.0//EN”   “http://mybatis.org/dtd/mybatis-3-config.dtd”在   & lt; configuration>   & lt; !——加载数据库文件db。属性——比;   & lt;属性资源=癲b.properties”比;   & lt; !——属性中陪可以配置一些属性名和属性值,此处的优先加载——比;   & lt; !——& lt;属性名="司机" value="/比;——比;   & lt;/properties>      & lt; !春天,和整合后,环境配置将废除——比;   & lt;环境默认=胺⒄埂北?   & lt;环境id=胺⒄埂痹?   & lt; !——使用JDBC事务管理、事务控制由mybatis管理——比;   & lt; transactionManager类型=癑DBC/比;   & lt; !——数据库连接池,由mybatis管理——比;   & lt;数据源类型=盎慵北?   & lt;属性名="司机" value=" https://www.yisu.com/zixun/$ {jdbc.driver} "/比;   & lt;属性名=" url " value=" https://www.yisu.com/zixun/$ {jdbc.url} "/比;   & lt;属性名="用户名" value=" https://www.yisu.com/zixun/$ {jdbc.username} "/比;   & lt;属性名="密码" value=" https://www.yisu.com/zixun/$ {jdbc.password} "/比;   & lt;/dataSource>   & lt;/environment>   & lt;/environments>   & lt;/configuration>      

<强>属性特性:

  

注意:MyBatis将按照下面的顺序来加载属性:

  

(1)在属性元素体内定义的属性首先被读取。

  

(2)然后会读取属性元素中资源或url加载的属性,它会覆盖已读取的同名属性。

  

(3)最后读取parameterType传递的属性,它会覆盖已读取的同名属性。

  

所以这里可能就会存在一个问题:假如UserMapper.xml中的有一个声明的入参名为名字,

  

春天+ SpringMVC + MyBatis深入学习及搭建(三)之MyBatis全局配置文件解析

  

而db.properties中也有一个参数名叫名字。

  

春天+ SpringMVC + MyBatis深入学习及搭建(三)之MyBatis全局配置文件解析

  

那最终UserMapper.xml中的选择会读取到name=根,而不是用户传入的值。

  

<>强建议:

  

不要在属性元素体内添加任何属性值,只将属性值定义在属性文件中。

  

在属性文件中定义属性名要有一定的特殊性,如:xxx.xxx.xxx, jdbc.url jbdc.username。

  

  

MyBatis框架在运行时可以调整一些运行参数。

  

比如:开启二级缓存,开启延迟加载…

  

全局参数将会影响MyBatis的运行行为。

  

春天+ SpringMVC + MyBatis深入学习及搭建(三)之MyBatis全局配置文件解析

  

春天+ SpringMVC + MyBatis深入学习及搭建(三)之MyBatis全局配置文件解析”>,</p>
  <p> </p>
  <p> </p>
  <p>在mapper.xml中,定义很多的声明,而声明需要parameterType指定输入参数的类型,需要resultType指定输出结果的映射类型。</p>
  <p>如果在指定类型时输入类型全路径,不方便进行开发。可以针对parameterType或resultType指定的类型定义一些别名,在mapper.xml中通过别名定义,方便开发。<h2 class=弹簧+ SpringMVC + MyBatis深入学习及搭建(三)之MyBatis全局配置文件解析