SqlMapConfig.xml

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

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

1.properties 属性

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

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

如果属性在不只一个地方进行了配置,那么 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.单个别名的定义

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

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

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

4.mappers(映射配置)

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

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

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

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

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

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

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

mybatis系列笔记(3)---SqlMapConfig.xml解析的更多相关文章

  1. Mybatis学习笔记(四) —— SqlMapConfig.xml配置文件

    一.properties(属性) SqlMapConfig.xml可以引用java属性文件中的配置信息 在config下定义db.properties文件,如下所示: db.properties配置文 ...

  2. Mybatis 系列10-结合源码解析mybatis 的执行流程

    [Mybatis 系列10-结合源码解析mybatis 执行流程] [Mybatis 系列9-强大的动态sql 语句] [Mybatis 系列8-结合源码解析select.resultMap的用法] ...

  3. Mybatis 系列8-结合源码解析select、resultMap的用法

    [Mybatis 系列10-结合源码解析mybatis 执行流程] [Mybatis 系列9-强大的动态sql 语句] [Mybatis 系列8-结合源码解析select.resultMap的用法] ...

  4. Mybatis 系列7-结合源码解析核心CRUD 配置及用法

    [Mybatis 系列10-结合源码解析mybatis 执行流程] [Mybatis 系列9-强大的动态sql 语句] [Mybatis 系列8-结合源码解析select.resultMap的用法] ...

  5. Mybatis 系列6-结合源码解析节点配置:objectFactory、databaseIdProvider、plugins、mappers

    [Mybatis 系列10-结合源码解析mybatis 执行流程] [Mybatis 系列9-强大的动态sql 语句] [Mybatis 系列8-结合源码解析select.resultMap的用法] ...

  6. Mybatis 系列5-结合源码解析TypeHandler

    [Mybatis 系列10-结合源码解析mybatis 执行流程] [Mybatis 系列9-强大的动态sql 语句] [Mybatis 系列8-结合源码解析select.resultMap的用法] ...

  7. Mybatis 系列4-结合源码解析节点:typeAliases

    [Mybatis 系列10-结合源码解析mybatis 执行流程] [Mybatis 系列9-强大的动态sql 语句] [Mybatis 系列8-结合源码解析select.resultMap的用法] ...

  8. Mybatis 系列3-结合源码解析properties节点和environments节点

    [Mybatis 系列10-结合源码解析mybatis 执行流程] [Mybatis 系列9-强大的动态sql 语句] [Mybatis 系列8-结合源码解析select.resultMap的用法] ...

  9. mybatis学习记录三——SqlMapConfig.xml相关参数详解

      5       SqlMapConfig.xml mybatis的全局配置文件SqlMapConfig.xml,配置内容如下: properties(属性) settings(全局配置参数) ty ...

随机推荐

  1. iOS 之 微信开发流程

    第1阶段 注册开放平台帐号 注册成为微信开放平台开发者 立即注册 认证开发者资质 开发者资质认证通过后才可申请微信支付,申请审核服务费:300元/次 立即认证 创建APP并提交审核 提交你的APP基本 ...

  2. Vue 响应式总结

    有些时候,不得不想添加.修改数组和对象的值,但是直接添加.修改后getter.setter又失去了. 由于 JavaScript 的限制, Vue 不能检测以下变动的数组: 当你利用索引直接设置一个项 ...

  3. Tsinsen A1333: 矩阵乘法(整体二分)

    http://www.tsinsen.com/A1333 题意:-- 思路:和之前的第k小几乎一样,只不过把一维BIT换成二维BIT而已.注意二维BIT写法QAQ #include <cstdi ...

  4. 读书笔记--用Python写网络爬虫02--数据抓取

    抓取(scraping)---爬虫从网页中抽取一些数据用以实现某些用途. 三种抽取网页数据的方法:正则表达式.Beautiful Soup和lxml. 2.1 分析网页 通过浏览器自带选项,查看网页源 ...

  5. js验证IP及子网掩码的合法性

    function checkIP(ip) {     obj=ip;    var exp=/^(\d{1,2}|1\d\d|2[0-4]\d|25[0-5])\.(\d{1,2}|1\d\d|2[0 ...

  6. Nodejs.sublime-build 在sublime3中的配置

    { "cmd": ["node", "$file"], "file_regex": "^[ ]*File \& ...

  7. IIS7和Tomcat7整合,即IIS7和Tomcat共用80端口

    IIS7和Tomcat7整合,即IIS7和Tomcat共用80端口 背景: 最近公司有一个项目要上线,需要用到iis和tomcat整合,共用80端口.由于公司的数据都非常重要,只通过端口映射到外网的8 ...

  8. 树莓派VNC搭建相关问题,啦啦啦~

    为了节省money,于是我决定用VNC界面来代替显示器,为后面做C++ Qt以及Python Qt开发打下基础,我别无选择!下面开始进入正题: 1-- 下载VNC-Viewer-6.0.1-Windo ...

  9. Python内置数据类型总结

    python的核心数据类型:(很多语言之提供了数字,字符串,文件数据类型,其他形式的数据类型都以标准库的形式表示 也就是用之前需要import ) ,但是python有很多都是内置的,不需要impor ...

  10. db2_errroecode

    sqlcode sqlstate  说明 000 00000 SQL语句成功完成   01xxx SQL语句成功完成,但是有警告 +012 01545 未限定的列名被解释为一个有相互关系的引用 +09 ...