MyBatis快速入门(二):MyBatis主配置文件

本文详细介绍了MyBatis主配置文件的结构和常用属性,包括properties、typeAliases、environments、transactionManager、dataSource和mappers等元素。通过配置,可以设置属性值、定义类型别名、管理事务、配置数据源以及映射器。同时,文章还提到了环境配置的切换、事务管理器的选择以及数据源的类型,帮助读者快速理解并应用MyBatis的配置。
摘要由CSDN通过智能技术生成

MyBatis主配置文件

主配置文件的主要内容和层级

  • configuration(配置)
    • properties(属性)
      • property
    • settings(设置)
      • setting
    • typeAliases(类型别名)
      • typeAliase(为单类设置别名)
      • package (为某个包下的类自动成别名,别名为类名,不区分大小写)
    • typeHandlers(类型处理器)
    • objectFactory(对象工厂)
      • typeHandler
    • plugins(插件)
      • plugin
    • environments(环境配置)
      • environment(环境变量)
        • transactionManager(事务管理器)
        • dataSource(数据源)
    • mappers(映射器)
      • mapper
      • package
      • url

常用属性详解

properties(属性)

作用: 设置属性和属性值,以便在后续的配置中使用。

配置方式:

  1. 通过 properties 元素的子元素property来配置,例如:

    <properties>
        <property name="driver" value="com.mysql.jdbc.Driver"/>
        <property name="url" value="jdbc:mysql://localhost:3306/mybatis"/>
        <property name="username" value="root"/>
        <property name="password" value=""/>
    </properties>
    
  2. 在属性文件中配置,在classpath(类路径)下新建jdbc.properties文件,内容如下:

    jdbc.driver=com.mysql.jdbc.Driver
    jdbc.url=jdbc:mysql://localhost:3306/mybatis
    jdbc.username=root
    jdbc.password=1234
    

    此时properties标签配置如下:

    <!--resource属性指定配置文件的位置,注意:配置文件必须在类路径下-->
    <properties resource="jdbc.properties"></properties>
    
    
  3. 配置方式1和2可以混合使用,例如:

    注意: 当属性名重复时,优先使用resource中的属性

    <properties resource="jdbc.properties">
        <property name="driver" value="com.mysql.jdbc.Driver"/>
        <property name="url" value="jdbc:mysql://localhost:3306/mybatis"/>
        <property name="username" value="root"/>
        <property name="password" value=""/>
    </properties>
    

如何使用: 在后续的配置中使用${属性名}的方式获取属性值,例如:

<!--配置方式1的使用方式-->
<dataSource type="POOLED">
    <!--引用properties标签中的内容-->
    <property name="driver" value="${driver}"/>
    <property name="url" value="${url}"/>
    <property name="username" value="${username}"/>
    <property name="password" value="${password}"/>
</dataSource>

<!--配置方式2的使用方式-->
<dataSource type="POOLED">
    <!--引用properties标签中的内容-->
    <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>

typeAliases(类型别名)

类型别名是为 Java 类型设置一个短的名字。 它只和 XML 配置有关,用来减少类完全限定名的冗余。

定义别名之后,在持久层接口的映射(mapper)文件中就可以直接使用user来代替之前的com.zfnotes.beans.User

定义方式:
  1. 单个定义别名:

    <!--typeAliases配置别名-->
    <typeAliases>
        <!--type指定实体类的全限定类名,alias指定别名,指定别名后不再区分大小写-->
        <typeAlias type="com.zfnotes.beans.User" alias="user"/>
        <typeAlias type="com.zfnotes.beans.Student" alias="student"/>
    </typeAliases>
    
  2. 批量定义别名:

    <!--typeAliases配置别名-->
    <typeAliases>
        <!--package扫描整个包下的类,类名就是别名,不再区分大小写-->
        <package name="com.zfnotes.beans"/>
    </typeAliases>
    
  3. 在类上使用@Alias注解:

    @Alias("user")
    public class User {
        ...
    }
    

environments(环境配置)和environment(环境变量)

可以在environments标签中配置多个environment子标签表示多个数据库,但是必须在environments中使用default属性来指定使用哪一个数据库,在切换环境时只需要修改default属性即可。

<!--配置mybatis环境,default指定默认的环境id-->
<environments default="mysql">
    <!--配置环境和环境id-->
    <environment id="mysql">
       ...
    </environment>
    <environment id="oracle">
       ...
    </environment>
</environments>

transactionManager(事务管理器)

在 MyBatis 中有两种类型的事务管理器(也就是 type="JDBC"或者type=“MANAGED”):

  • JDBC – 这个配置就是直接使用了 JDBC 的提交和回滚设置,它依赖于从数据源得到的连接来管理事务作用域。
  • MANAGED – 它从来不提交或回滚一个连接,而是让容器来管理事务的整个生命周期, 默认情况下它会关闭连接。

注意: 如果你正在使用 Spring + MyBatis,则没有必要配置事务管理器, 因为 Spring 模块会使用自带的管理器来覆盖前面的配置

dataSource(数据源)

dataSource 元素使用标准的 JDBC 数据源接口来配置数据源和数据库连接的基本属性。

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

  • UNPOOLED

    不使用连接池,每次被请求时打开连接,使用完毕后关闭连接。对数据库性能要求不大时可以使用该方式。

  • POOLED

    使用连接池,将 JDBC 连接对象组织起来,避免了创建新的连接实例时所必需的初始化和认证时间。

  • JNDI

    配置外部数据源。

mappers(映射器)

告诉了 MyBatis 去哪里找映射文件。

配置方式:

  1. 使用相对于类路径的资源引用,例如:

    <!-- 使用相对于类路径的资源引用 -->
    <mappers>
        <mapper resource="com/zfnotes/dao/UserDao.xml"/>
    </mappers>
    
  2. 使用mapper接口(持久层接口)的完全限定类名,例如:

    注意: 此种方法要求mapper接口名称和mapper映射文件名称相同,且放在同一个或者同名目录中。

    <mappers>
      <mapper class="com.zfnotes.dao.UserDao"/>
    </mappers>
    
  3. 注册指定包下的所有mapper接口,例如:

    注意: 此种方法要求mapper接口名称和mapper映射文件名称相同,且放在同一个或者同名的目录中。

    <mappers>
    	<package name="com.zfnotes.dao"/>
    </mappers>
    
  4. 使用完全限定资源定位符(URL),例如:

       <mappers>
         <mapper url="file:///xxx/**/xxx.xml"/>
       </mappers>
    

更多mybatis主配置文件内容参见:XML配置

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值