mybatis系列笔记(3)---SqlMapConfig.xml解析
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解析的更多相关文章
- Mybatis学习笔记(四) —— SqlMapConfig.xml配置文件
一.properties(属性) SqlMapConfig.xml可以引用java属性文件中的配置信息 在config下定义db.properties文件,如下所示: db.properties配置文 ...
- Mybatis 系列10-结合源码解析mybatis 的执行流程
[Mybatis 系列10-结合源码解析mybatis 执行流程] [Mybatis 系列9-强大的动态sql 语句] [Mybatis 系列8-结合源码解析select.resultMap的用法] ...
- Mybatis 系列8-结合源码解析select、resultMap的用法
[Mybatis 系列10-结合源码解析mybatis 执行流程] [Mybatis 系列9-强大的动态sql 语句] [Mybatis 系列8-结合源码解析select.resultMap的用法] ...
- Mybatis 系列7-结合源码解析核心CRUD 配置及用法
[Mybatis 系列10-结合源码解析mybatis 执行流程] [Mybatis 系列9-强大的动态sql 语句] [Mybatis 系列8-结合源码解析select.resultMap的用法] ...
- Mybatis 系列6-结合源码解析节点配置:objectFactory、databaseIdProvider、plugins、mappers
[Mybatis 系列10-结合源码解析mybatis 执行流程] [Mybatis 系列9-强大的动态sql 语句] [Mybatis 系列8-结合源码解析select.resultMap的用法] ...
- Mybatis 系列5-结合源码解析TypeHandler
[Mybatis 系列10-结合源码解析mybatis 执行流程] [Mybatis 系列9-强大的动态sql 语句] [Mybatis 系列8-结合源码解析select.resultMap的用法] ...
- Mybatis 系列4-结合源码解析节点:typeAliases
[Mybatis 系列10-结合源码解析mybatis 执行流程] [Mybatis 系列9-强大的动态sql 语句] [Mybatis 系列8-结合源码解析select.resultMap的用法] ...
- Mybatis 系列3-结合源码解析properties节点和environments节点
[Mybatis 系列10-结合源码解析mybatis 执行流程] [Mybatis 系列9-强大的动态sql 语句] [Mybatis 系列8-结合源码解析select.resultMap的用法] ...
- mybatis学习记录三——SqlMapConfig.xml相关参数详解
5 SqlMapConfig.xml mybatis的全局配置文件SqlMapConfig.xml,配置内容如下: properties(属性) settings(全局配置参数) ty ...
随机推荐
- C#创建datatable (转)
C#创建datatable 方法一: DataTable tblDatas = new DataTable("Datas"); DataColumn dc = null; dc ...
- php循环生成的表单如何获得其各项值案例
思路:输入框和按钮是用for循环生成的,不但要获取输入框里的各项值,并且要获取点击按钮的值,要知道是那个按钮被点击了,这里以生成5个为例.如图: 这是提交页面,点击的是“小米”. 这是显示结果,测试显 ...
- java_web学习(15)jQuery
JavaScript 库作用及对比 为了简化 JavaScript 的开发, 一些 JavsScript 库诞生了. JavaScript 库封装了很多预定义的对象和实用函数.能帮助使用者建立有高难度 ...
- 因子分析&主成分分析
因子分析和主成分分析的异同点: 1.主成分分析仅仅是一种数据变换而不假设数据矩阵有什么样的结构形式 因子分析假定数据有特定的模型,而且齐总的因子满足特定的条件 2.因子分析和主成分分析都是从相关矩阵出 ...
- CentOS6.5+mysql5.5源码安装
数据库安装 1新增mysql用户 [root@HE1mysql]# groupadd mysql -g 502 [root@HE1mysql]# useradd -g mysql -s /sbin/n ...
- Postgresql standby(备机只读)环境搭建
下载PostgreSQL源码包,放在任意目录 设置/etc/sysctl.conf,增加以下内容 kernel.shmmni= 4096 kernel.sem =501000 6412800000 5 ...
- 第四组UI组件:AdapterView及子类
AdapterView组件是一组重要的组件,AdapterView本省是一个抽象基类,它派生的子类在用法上十分相似,只是显示界面与一定的区别,因此这次针对它们的共性集中讲解,并突出介绍他们的区别. A ...
- PHP那些最好的轮子
PHP那些最好的轮子 Databse 数据库ORM Doctrine 2 License : MIT Source Code Allo点评:Doctrine是功能最全最完善的PHP ORM,社区一直很 ...
- ADO.NET 数据库操作类
操作数据类 避免代码重用.造对象太多.不能分工开发 利用面向对象的方法,把数据访问的方式优化一下,利用封装类 一般封装成三个类: 1.数据连接类 提供数据连接对象 需要引用命名空间: using ...
- IOS学习之block代码块
前言: block这个名词对于做一般开发者来说可能会觉得稀奇古怪而非常陌生,但是对于iOS工程师来说,在整个开发中到处都是它的影子,今天一大早觉得在假期学习一下它,对明年的iOS开发工作做个准备,突然 ...