MyBatis(2)XML配置

mybatis.xml文件

<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE configuration
PUBLIC "-//mybatis.org//DTD Config 3.0//EN"
"http://mybatis.org/dtd/mybatis-3-config.dtd">

<!-- 配置 -->
<configuration>

    <!-- 加载数据库信息资源 -->
    <properties resource="jdbc.properties" />

    <environments default="development">
        <environment id="development">
            <transactionManager type="JDBC" />
            <dataSource type="POOLED">
                <property name="driver" value="${jdbc.driver}" />
                <property name="url" value="${jdbc.url}" />
                <property name="username" value="${jdbc.username}" />
                <property name="password" value="${jdbc.password}" />
            </dataSource>
        </environment>
    </environments>

    <!-- 映射器(mappers)将包内的映射器接口实现全部注册为映射器 -->
    <mappers>
        <package name="cn.hhm.mybatisdemo.mapper" />
    </mappers>

</configuration>

MyBatis的配置文件元素如下:

  • properties
  • settings
  • typeAliases
  • typeHandlers (类型处理器)
  • objectFactory(对象工厂)
  • plugins (插件)
  • environments (环境)
  • databaseIdProvider (数据库厂商标识)
  • mappers (映射器)

这里只介绍几个,其它的可以查看官网 MyBatis官网
,介绍的很详细。

1.properties元素

properties是一个配置属性的元素,让我们可以在配置文件的上下文中使用它。3种方式:
- property子元素
- properties配置文件
- java代码

1.1 使用方式

property子元素:

<dataSource type="POOLED">
    <property name="driver" value="${jdbc.driver}" />
    <property name="url" value="${jdbc.url}" />
    <property name="username" value="${jdbc.username}" />
    <property name="password" value="${jdbc.password}" />
</dataSource>

properties配置文件:

<!-- 加载数据库信息资源 -->
    <properties resource="jdbc.properties"/>

1.2 优先级(加载顺序)

property子元素 > properties > 代码

2. typeHandler类型处理器

MyBatis在预处理语句(PreparedStatement)中设置一个参数时,或者从结果集(ResultSet)中取出一个值时,都会用注册了的typeHandler进行处理。

3. objectFactory

当MyBatis在构建一个结果返回时,都会使用objectFactory去构建POJO。

4. environments配置环境

environments环境可以配置多个数据源,此部分包括 ==数据源== 和 ==数据库事务==。结构如下:

<environments default="development">
        <environment id="development">
            <transactionManager type="JDBC"/>
            <dataSource type="POOLED">
                <property name="driver" value="${jdbc.driver}" />
                <property name="url" value="${jdbc.url}" />
                <property name="username" value="${jdbc.username}" />
                <property name="password" value="${jdbc.password}" />
            </dataSource>
        </environment>
    </environments>

注意关键点:

  • 默认的环境 ID(比如:default=”development”)。
  • 每个 environment 元素定义的环境 ID(比如:id=”development”)。
  • 事务管理器的配置(比如:type=”JDBC”)。
  • 数据源的配置(比如:type=”POOLED”)。

默认的环境和环境 ID 是自解释的,因此一目了然。你可以对环境随意命名,但一定要保证默认的环境 ID 要匹配其中一个环境 ID。

事务管理器(transactionManager)

在 MyBatis 中有两种类型的事务管理器(也就是 type=”[JDBC|MANAGED]”):
- JDBC:直接使用了JDBC的提交和回滚设置。

数据源(dataSource)

MyBatis内部提供了三种数据源的实现方式。
- UNPOOLED:非连接池
- POOLED:连接池
- JNDI

5. mappers(映射器)

mappers是用来定义动态SQL语句的,比较方便灵活,支持自动绑定JavaBean。

引入方式

<!-- 使用相对于类路径的资源引用 -->
<mappers>
  <mapper resource="org/mybatis/builder/AuthorMapper.xml"/>
  <mapper resource="org/mybatis/builder/BlogMapper.xml"/>
  <mapper resource="org/mybatis/builder/PostMapper.xml"/>
</mappers>
<!-- 使用完全限定资源定位符(URL) -->
<mappers>
  <mapper url="file:///var/mappers/AuthorMapper.xml"/>
  <mapper url="file:///var/mappers/BlogMapper.xml"/>
  <mapper url="file:///var/mappers/PostMapper.xml"/>
</mappers>
<!-- 使用映射器接口实现类的完全限定类名 -->
<mappers>
  <mapper class="org.mybatis.builder.AuthorMapper"/>
  <mapper class="org.mybatis.builder.BlogMapper"/>
  <mapper class="org.mybatis.builder.PostMapper"/>
</mappers>
<!-- 将包内的映射器接口实现全部注册为映射器 -->
<mappers>
  <package name="org.mybatis.builder"/>
</mappers>

猜你喜欢

转载自blog.csdn.net/HAIMING157/article/details/81474687