2、XML配置文件

XML文件结构如:

configuration 配置
  •  properties 属性 
  •  settings 设置 
  •  typeAliases 类型命名 
  •  typeHandlers 类型处理器 
  •  objectFactory 对象工厂 
  •  plugins 插件 
  •  environments 环境 
    • environment 环境变量
      • transactionManager 事务管理器 
      • dataSource 数据源 
  • databaseIdProvider 数据库厂商标识 
  • mappers 映射器 


(1)properties 属性

resource="jdbc.properties">
name="username" value="root" />
name="password" value="mysql"/>
default="development">
id="development">

type="JDBC" />

type="POOLED">
name="driver" value="${driver}"/>
name="url" value="${url}"/>
name="username" value="${username}"/>
name="password" value="${password}"/>


这个例子中的 username 和 password 将会由 properties 元素中设置的相应值来替换。 driver 和 url 属性将会由 config.properties 文件中对应的值来替换。这样就为配置提供了诸多灵活选择。

如果属性在不只一个地方进行了配置,那么 MyBatis 将按照下面的顺序来加载:

  • 在 properties 元素体内指定的属性首先被读取。
  • 然后根据 properties 元素中的 resource 属性读取类路径下属性文件或根据 url 属性指定的路径读取属性文件,并覆盖已读取的同名属性。
  • 最后读取作为方法参数传递的属性,并覆盖已读取的同名属性。

因此,通过方法参数传递的属性具有最高优先级,resource/url 属性中指定的配置文件次之,最低优先级的是 properties 属性中指定的属性。


(2)settings 设置


name="cacheEnabled" value="true"/>

name="lazyLoadingEnabled" value="true"/>

name="multipleResultSetsEnabled" value="true"/>

name="useColumnLabel" value="true"/>

name="useGeneratedKeys" value="false"/>

name="autoMappingBehavior" value="PARTIAL"/>

name="defaultExecutorType" value="SIMPLE"/>

name="defaultStatementTimeout" value="25"/>

name="safeRowBoundsEnabled" value="false"/>

name="mapUnderscoreToCamelCase" value="false"/>

name="localCacheScope" value="SESSION"/>

name="jdbcTypeForNull" value="OTHER"/>

name="lazyLoadTriggerMethods" value="equals,clone,hashCode,toString"/>

(3)TypeAliases 类型命名


alias="User" type="com.pandawork.springmvc.common.entity.User"/>
也可以指定一个包名,MyBatis 会在包名下面搜索需要的 Java Bean

name="com.pandawork.springmvc.common.entity"/>

(4)environments 环境

如果你想连接两个数据库,就需要创建两个 SqlSessionFactory 实例,每个数据库对应一个。而如果是三个数据库,就需要三个实例,依此类推,记起来很简单:每个数据库对应一个 SqlSessionFactory 实例             


事务管理器(transactionManager)

在 MyBatis 中有两种类型的事务管理器(也就是 type=”[JDBC|MANAGED]”):

  • JDBC – 这个配置就是直接使用了 JDBC 的提交和回滚设置,它依赖于从数据源得到的连接来管理事务范围。
  • MANAGED – 这个配置几乎没做什么。它从来不提交或回滚一个连接,而是让容器来管理事务的整个生命周期(比如 JEE 应用服务器的上下文)。 默认情况下它会关闭连接,然而一些容器并不希望这样,因此需要将 closeConnection 属性设置为 false 来阻止它默认的关闭行为

数据源(dataSource)

dataSource 元素使用标准的 JDBC 数据源接口来配置 JDBC 连接对象的资源。

  • 许多 MyBatis 的应用程序将会按示例中的例子来配置数据源。然而它并不是必须的。要知道为了方便使用延迟加载,数据源才是必须的。

有三种内建的数据源类型(也就是 type=”[UNPOOLED|POOLED|JNDI]”):

UNPOOLED– 这个数据源的实现只是每次被请求时打开和关闭连接。

POOLED– 这种数据源的实现利用“池”的概念将 JDBC 连接对象组织起来,避免了创建新的连接实例时所必需的初始化和认证时间。

JNDI– 这个数据源的实现是为了能在如 EJB 或应用服务器这类容器中使用,容器可以集中或在外部配置数据源,然后放置一个 JNDI 上下文的引用。


你可能感兴趣的:(Mybatis)