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,非常的详细,欢迎大家指点,谢谢!

  • 相关阅读:
    DVWA 黑客攻防演练(十)反射型 XSS 攻击 Reflected Cross Site Scripting
    DVWA 黑客攻防演练(九) SQL 盲注 SQL Injection (Blind)
    DVWA 黑客攻防演练(八)SQL 注入 SQL Injection
    DVWA 黑客攻防演练(七)Weak Session IDs
    DVWA 黑客攻防演练(六)不安全的验证码 Insecure CAPTCHA
    DVWA 黑客攻防演练(五)文件上传漏洞 File Upload
    工作流表结构设计
    Visual Studio 2019尝鲜----新建空项目体验
    《使用CSLA 2019:CSLA .NET概述》原版和机译文档下载
    .NET快速开发平台的在线预览
  • 原文地址:https://www.cnblogs.com/qdhxhz/p/6497075.html
Copyright © 2011-2022 走看看