• 3.Mybatis全局配置文件属性详解(SqlMapConfig.xml)


    视频地址:http://edu.51cto.com/sd/be679

    首先我们要知道一点,该配置文件的中属性的存放是有顺序的,没有办法随意的乱放。如果你属性的配置位置出错,会有如下错误提示:

    The content of element type "configuration" must match "(properties?,settings?,typeAliases?,typeHandlers?,objectFactory?,objectWrapperFactory?,reflectorFactory?,plugins?,environments?,databaseIdProvider?,mappers?)".

    这个错误的大概意思是说,在configuration里面的属性存放必须按照红体字那些顺序存放。

      接下来我们按照顺序来看一下这些配置属性到底是什么意思:

        1.properties属性:加载属性的配置文件

        比如:这个数据源信息,应该是放在一个db.properties里面然后在在数据源里引用的。

    <properties resource="db.properties"></properties>//把db.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>

        2.第二个配置信息<settings>

          Mybatis在运行的时候可以调整的一些参数

          比如:是否开启缓存,延迟加载就是在setting中配置,这里把延迟加载和开启二级缓存的配置贴在下面    

        <!-- 开启延迟加载 -->
        <settings>
            <!-- lazyLoadingEnabled:延迟加载启动,默认是false -->
            <setting name="lazyLoadingEnabled" value="true"/>
            <!-- aggressiveLazyLoading:积极的懒加载,false的话按需加载,默认是true -->
            <setting name="aggressiveLazyLoading" value="false"/>
            <!-- 开启二级缓存,默认是false -->
            <setting name="cacheEnabled" value="true"/>
        </settings>

          这个全局的参数别随便乱配,因为它会影响Mybatis的运行

        3.typeAliases 别名(这个属性用的非常平繁)

           默认支持的别名类型:我们在用parameterType指定输入参数类型的时候需要写全称,但是比如:java.lang.Integer也可以写int就是因为这个默认支             持的别名型大概支持的默认类型如下(没有全部列出来)

      

          自定义别名:

            对单个的定义:

    <typeAliases>
    <!-- 
        type:就是你要为那个类去别名的路径:包名+类型
      alias:就是你自己取的别名
    --> <typeAlias type="com.etc.entity.Student" alias="student"/> </typeAliases>

            引用别名:本来该写 com.etc.entity.Student现在只要写alias里的名字就好

            批量定义别名:

    <!-- 
        Mybatis批量定义别名:通过指定包名来定义
        就是内部去定义这个取别名的规则:
        规则:Mybatis会自动去扫描这个包底下的类,并且Mybatis自定义别名,别名就是类名(首字母大小写都可以)
     -->
    <package name="com.etc.entity"/>

      注意:扫描包,Mybatis自定义别名,别名就是类型首字母的大小写都可以

        typeHanlders:类型处理器

          Mybatis中是通过typeHanlders完成java类型和数据库类型的转换,Mybatis内部定义的类型已经足够我们去使用,就不需要自己在去定义。

        environments:运行环境(数据源等等)

        Mappers:关联配置文件(就是mybatis写在xml中的数据库操作,需要告诉这个全局配置文件),主要有一下三种方式

          单个文件:   

    <mappers>
        <mapper resource="mapper/StudentMapper.xml"/>
    </mappers>

          类加载:

    <!-- 
            通过类去加载该类的配置文件
            规则:mapper接口和mapper.xml映射文件的名称必须一致
               :在同一个目录
         -->
        <mapper class="com.etc.mapper.StudentMapper"/>

          批量加载:

    <!--批量加载:也是扫描这个包底下的所有东西 仍然要遵守类加载的原则 -->
        <package name="com.etc.mapper"/>

    以上就是这些就是配置文件的详细解析。

  • 相关阅读:
    LOJ P10004 智力大冲浪 题解
    LOJ P10011 愤怒的牛 题解
    LOJ P10002 喷水装置 题解
    洛谷 P2279 [HNOI2003]消防局的设立 题解
    洛谷 P5640 【CSGRound2】逐梦者的初心 题解
    洛谷 P2827 蚯蚓 题解
    [SHOI2012]魔法树
    浅析树链剖分
    [Bzoj1731]排队布局
    [POJ-1201]Intervals
  • 原文地址:https://www.cnblogs.com/huaixiaoz/p/5794482.html
Copyright © 2020-2023  润新知