Mybatis配置文件详解

时间:2022-06-07 04:47:34

一、SqlSession的使用范围说明

 1、SQLSessionFactoryBuilder

  通过SqlSessionFactoryBuilder创建会话工厂SqlSessionFactory,将SqlSessionFactoryBuilder当成一个工具类使用即可,不需要使用单例模式管理,在创建SqlSessionFactory的时候,只需要new一次SqlSessionFactoryBuilder即可。

 2、SqlSessionFactory

  通过SqlSessionFactory创建SqlSession,使用单例模式来管理SqlSessionFactory(工厂一旦创建,只使用一个实例)。

 3、SqlSession

  SqlSession是一个面向用户(程序员)的接口。
  SqlSession中提供了很多操作数据库的方法:如selectOne(返回单个对象)、selectList(返回单个或多个对象)。
  SqlSession是线程不安全的,因为在SqlSession中除了有接口中的方法(操作数据库的方法)之外。还有数据域属性。
  SqlSession的最佳应用场合是在方法体内,将其定义为局部变量来使用。

二、SqlMapConfig.xml配置文件详解

 1、Properties属性

  Properties属性用来加载属性配置文件。

 <!--
        加载属性文件
        resource:属性文件的相对路径
        url:属性文件的绝对路径
     -->
    <properties resource="config/db.properties">
        <!--
            配置一些属性
            name:属性的名称
            value:属性的值
        -->
        <!--<property name="" value="" /> -->
    </properties>

  properties特性:
   Mybatis将按照下面的属性来加载属性:
   1. 首先会读取在property标签中定义的属性。
   2. 然后会读取在properties标签中通过resource或url加载时的属性,它会覆盖已读取得同名属性。
   3. 最后会读取sql中parameterType传递过来的属性,它会覆盖已读取的同名属性。

  2、settings全局参数配置

  Mybatis框架在运行时可以调整一些运行参数,比如:开启二级缓存、开启延迟加载等。这些参数
要通过settings标签来配置,全局参数会影响Mybatis的运行行为,配置一定要注意。

 <!--全局参数配置-->
    <settings >
            <!--
                name:属性名称
                value:属性的值
            -->
        <setting name="" value=""/>
    </settings>

  常用的全局配置参数如下:
Mybatis配置文件详解
Mybatis配置文件详解
Mybatis配置文件详解

 3、typeAlia

  在映射文件中的parameterType和resultType属性中要指定输入、输出映射类型,如果类型为PO,要指定PO类的全路径这样不是特别方便,可以使用typeAlias定义一些别名,来方便开发。

<!--定义别名-->
    <typeAliases>
        <!--
            type:需要起别名的字符串
            alias:对应的别名
        -->
        <typeAlias type="" alias="" />
        
        <!--
            name:包名,会对包下面的类进行扫描,自动批量设置别名,
                设置的别名为类名,首字母大小写均可
        -->
        <package name="" />
       
    </typeAliases>

  Mybatis的默认别名

Mybatis配置文件详解

 4、typeHandlers(类型处理器)

  Mybatis中通过typeHandlers完成jdbc类型和Java类型的装换。通常情况下,Mybatis提供的类型处理器满足日常需要,不需要我们再自定义。

<typeHandlers>
        <typeHandler handler="" jdbcType="" javaType="" />
    </typeHandlers>

  Mybatis默认支持的数据类型
Mybatis配置文件详解

5、environments 环境

<!--
        环境配置
        在和Spring整合后改配置将废除
    -->
    <environments default="development">

        <environment id="development">
            <!--使用JDBC的事务管理,事务管理交给Mybatis-->
            <transactionManager type="JDBC"></transactionManager>
            <!--数据库连接池,有Mybatis管理-->
            <dataSource type="POOLED">
                <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="root" />
            </dataSource>
        </environment>
</environments>

 6、mapper 加载映射文件

  加载映射文件有三种方式
  1、加载单个映射文件

 <!--引入mapper-->
    <mappers>
        <!--rerource:引入映射文件相对于classpath的地址-->
        <mapper resource="config/sqlmap/userMapper.xml" />
    </mappers>

  2、通过Mapper接口加载单个映射文件
  前提条件:
   (1). 使用Mapper代理的方式进行开发。
   (2). Mapper接口文件名要和映射文件名一致
   (3).Mapper接口文件和映射文件在同一个目录下

   <!--引入mapper-->
    <mappers>
        
        <mapper class="com.jack.po.UserMapper" />
    </mappers>

  3、批量记载映射文件
  前提条件:
   (1). 使用Mapper代理的方式进行开发。
   (2). Mapper接口文件名要和映射文件名一致
   (3).Mapper接口文件和映射文件在同一个目录下

  <!--引入mapper-->
    <mappers>
        <!--name:mapper接口文件所在的包路径-->
      <package name="" />
    </mappers>