zoukankan      html  css  js  c++  java
  • Mybatis框架(3)---SqlMapConfig.xml解析

    SqlMapConfig.xml

    SqlMapConfig.xml是Mybatis的全局配置参数,关于他的具体用的有专门的MyBatis - API文档,这里面讲的非常清楚,所以我这里就挑几个讲下:

    他的主要配置的属性有如下:

    1.properties 属性

    这些属性都是可外部配置且可动态替换的,既可以在典型的 Java 属性文件中配置,亦可通过 properties 元素的子元素来传递。

    1 <!-- 加载属性文件 -->
    2     <properties resource="db.properties">
    3         <!-- 可以在配置相关的其他事项 -->
    4         <!-- <property name="jdbc.driver" value="com.mysql.jdbc.Driver"/> -->
    5     </properties>
    6     <!-- 这里如果在db.properties和 name=""都配置了jdbc.driver那么优先执行name中的-->
    7     <!-- 配置全局的参数信息 -->    

    如果属性在不只一个地方进行了配置,那么 MyBatis 将按照下面的顺序来加载:

    • 在 properties 元素体内指定的属性首先被读取。
    • 然后根据 properties 元素中的 resource 属性读取类路径下属性文件或根据 url 属性指定的路径读取属性文件,并覆盖已读取的同名属性。
    • 最后读取作为方法参数传递的属性,并覆盖已读取的同名属性。

    因此,通过方法参数传递的属性具有最高优先级,resource/url 属性中指定的配置文件次之,最低优先级的是 properties 属性中指定的属性。

    2.settings全局的参数配置

    这是 MyBatis 中极为重要的调整设置,它们会改变 MyBatis 的运行时行为。

    具体的就不写了只写一个表达式:

    <!-- 配置全局的参数信息 -->    
           <settings>
              <setting name="" value=""/>
          </settings>

    3.typeAliases(别名)

     制定别名最大的一个优势就是方便我们的开发,因为我们如果没有设置别名的情况下,在mapper.xml中

    定义了很多Statement ,Statement需要parameterType指定输入参数的类型或者指定输出结果的类型比如:

    <!-- 根据id查询用户信息 -->
        <select id="findUserById" parameterType="int" resultType="com.study.model.User">
            SELECT * FROM USER WHERE id= #{id}
        </select>

    这里的resultType如果是对象一定要类的全名称,那我们能不能只写了user就能达到同样的效果,这样是不是就有利于简便我们的开发

    有两种方法:

    1.单个别名的定义

    1 <typeAliases>
    2         <!--
    3             单个别名的定义
    4             alias:别名,type:别名映射的类型  -->
    5             <!-- <typeAlias type="com.study.model.User" alias="user"/> -->
    6     </typeAliases>
    7 <!--这样的话只需输入user就能起到一样效果-->

    2.批量定义别名(常用)

    1 <typeAliases>
    2             <!-- 批量别名定义
    3             指定包路径,自动扫描包下边的pojo,定义别名,别名默认为类名(首字母小写或大写)
    4          -->
    5         <package name="com.study.model"/>
    6     </typeAliases>

    4.mappers(映射配置)

    1.通过resource加载单个映射文件

    1 <!-- 加载映射文件 -->
    2     <mappers>
    3         <mapper resource="sqlmap/User.xml" />     
    4     </mappers>

    2.通过mapper接口加载单个mapper

    1 <mappers>
    2         <!-- 通过mapper接口 加载单个映射文件 必须遵循一些规范: 需要将mapper接口和mapper.xml映射文件 文件名必须一致 并且在同一个目录下 -->
    3         <mapper class="com.study.mapper.UserMapper" />     
    4     </mappers>

    3.批量加载mapper(推荐使用)

    1 <mappers>
    2         <!-- 
    3             指定mapper接口的包名  mybatis会自动扫描这个包下所有的mapper接口 然后执行加载
    4          -->
    5         <package name="com.study.mapper"/>
    6     </mappers>

     其他的我就不讲了,要详细的可以找api,非常的详细,欢迎大家指点,谢谢!

  • 相关阅读:
    Visual Studio 2005 Starter Kits
    怎样去做才是朋友?
    C#读写日志文本文件
    [文摘20080707]马云追加投资20亿 淘宝首定10年超沃尔玛目标
    [转]在WinForm应用程序中实现自动升级
    [转]官方Flash CS3简体中文帮助文档下载,AS3.0简体中文帮助文档下载
    [引]MySQL INNODB类型表的外键关联设置
    [转]winfrom让弹出的MessageBox在指定时间内自动销毁
    生活开心一笑 之 "我家半"与"QQ病毒"
    [English20080721]疯狂英语365句
  • 原文地址:https://www.cnblogs.com/qdhxhz/p/6497075.html
Copyright © 2011-2022 走看看