• Mybatis配置详解


    一、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>
    

      

    3、typeAlia

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

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

      

     4、typeHandlers(类型处理器)

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

    <typeHandlers>
    
            <typeHandler handler="" jdbcType="" javaType="" />
    
        </typeHandlers>
    
      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>
    

      本文来自上海尚学堂Java学员原创

  • 相关阅读:
    参考Shiro的自定义基于Spring的AOP横切模式
    Spring-@Value获取配置文件内容
    BeanPostProcessor Bean实例的初始化前后的自定义修改
    两台Linux主机之间免密scp复制文件及远程启动关闭Tomcat
    Shiro Realm领域
    test
    Linux 安装Oracle数据库
    Shiro Authorizer授权器
    HDU 1079 Calendar Game (博弈)
    MooFest POJ
  • 原文地址:https://www.cnblogs.com/shsxt/p/10790988.html
Copyright © 2020-2023  润新知