MyBatis-mybatis全局映射文件解析
全局配置文件为mybatis-config.xml
1、properties标签
<properties resource="dbconfig.properties"></properties>
可以使用properties来引入外部properties配置文件的内容
引入方式有两种:
①resource:引入类路径下的资源
②url:引入网络路径或者磁盘路径下的资源
2、settings标签
<settings>
<setting name="mapUnderscoreToCamelCase" value="true"/>
</settings>
settings包含很多重要的设置项
setting:用来设置每一个设置项 name:设置项名 value:设置项取值
具体参见:http://www.mybatis.org/mybatis-3/zh/configuration.html#settings
3、typeAliases
<typeAliases>
<typeAlias type="com.atguigu.mybatis.bean.Employee" alias="emp"/>
<package name="com.atguigu.mybatis.bean"/>
</typeAliases>
typeAliases别名处理器:可以为我们的java类型起别名,别名不区分大小写。
①typeAlias:为某个java类型起别名
type:指定要起别名的类型全类名;默认别名就是类名小写;
alias:指定新的别名
②package:为某个包下的所有类批量起别名
name:指定包名(为当前包及下面所有的后代包的每一个类都起一个默认的别名(类名小写))
批量起别名的情况下,可以使用@Alias注解为某个类型指定新的别名。
4、environments标签
<environments default="dev_mysql">
<environment id="dev_mysql">
<transactionManager type="JDBC"></transactionManager>
<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> <environment id="dev_oracle">
<transactionManager type="JDBC" />
<dataSource type="POOLED">
<property name="driver" value="${orcl.driver}" />
<property name="url" value="${orcl.url}" />
<property name="username" value="${orcl.username}" />
<property name="password" value="${orcl.password}" />
</dataSource>
</environment>
</environments>
myBatis可以配置多种环境,default指定使用某种环境,可以达到快速切换环境。
①environment:配置一个具体的环境信息:必须有两个标签Id代表当前环境的唯一标识。
②transactionManager:事务管理器
type:事务管理器的类型;JDBC(JdbcTransactionFactory)|MANAGED(ManagedTransactionFactory)。
自定义事务管理器:实现TransactionFactory接口.type指定为全类名
③dataSource:数据源。
type:数据源类型;UNPOOLED(UnpooledDataSourceFactory)|POOLED(PooledDataSourceFactory)|JNDI(JndiDataSourceFactory)
自定义数据源:实现DataSourceFactory接口,type是全类名
5、databaseIdProvider标签 支持多数据厂商的
<databaseIdProvider type="DB_VENDOR">
<!-- 为不同的数据库厂商起别名 -->
<property name="MySQL" value="mysql"/>
<property name="Oracle" value="oracle"/>
<property name="SQL Server" value="sqlserver"/>
</databaseIdProvider>
在SQL映射文件中可以指定所用的数据库id,即使用哪个数据库厂商。在databaseId中指定
<select id="getEmployeeById" resultType="Employee" databaseId="mysql" >
SELECT id ,user_name,gender,email FROM tbl_employee WHERE id
= #{id}
</select>
7、mappers标签 将SQL映射注册到全局配置中
将我们写好的sql映射文件(EmployeeMapper.xml)一定要注册到全局配置文件(mybatis-config.xml)中
①注册一个sql映射注册配置文件
<mappers>
<mapper resource="mybatis/mapper/EmployeeMapper.xml"/>
</mappers>
resource:引用类路径下的sql映射文件
url:引用网络路径或者磁盘路径下的sql映射文件(file:///var/mappers/AuthorMapper.xml)
②注册一个接口
<mappers>
<mapper class="com.atguigu.mybatis.dao.EmployeeMapperAnnotation"/>
</mappers>
class:引用(注册)接口,
有sql映射文件,映射文件名必须和接口同名(忽略大小写),并且放在与接口同一目录下
没有sql映射文件,所有的sql都是利用注解写在接口上
推荐:比较重要的复杂的DAO接口我们来写sql映射文件,不重要的,简单的Dao接口为了开发快速可以使用注解
如果采用接口注册,mapper sql映射文件中的nameSpace属性必须是接口的全类名。
③批量注册
<mappers>
<package name="com.atguigu.mybatis.dao"/>
</mappers>
MyBatis-mybatis全局映射文件解析的更多相关文章
- MyBatis 源码分析 - 映射文件解析过程
1.简介 在上一篇文章中,我详细分析了 MyBatis 配置文件的解析过程.由于上一篇文章的篇幅比较大,加之映射文件解析过程也比较复杂的原因.所以我将映射文件解析过程的分析内容从上一篇文章中抽取出来, ...
- Mybatis源码阅读-配置文件及映射文件解析
Mybatis源码分析: 1.配置文件解析: 1.1源码阅读入口: org.apache.ibatis.builder.xml.XMLConfigBuilder.parse(); 功能:解析全局配置文 ...
- Mybatis系列全解(五):全网最全!详解Mybatis的Mapper映射文件
封面:洛小汐 作者:潘潘 若不是生活所迫,谁愿意背负一身才华. 前言 上节我们介绍了 < Mybatis系列全解(四):全网最全!Mybatis配置文件 XML 全貌详解 >,内容很详细( ...
- Mybatis(二) SQL映射文件
SQL映射文件 单条件查询 1. 在UserMapper接口添加抽象方法 //根据用户名模糊查询 List<User> getUserListByName(); 2. 在UserMappe ...
- 初始MyBatis、SQL映射文件
MyBatis入门 1.MyBatis前身是iBatis,是Apache的一个开源项目,2010年这个项目迁移到了Google Code,改名为MyBatis,2013年迁移到GitHub.是一个基于 ...
- MyBatis 的 XML 映射文件使用说明
简介 文档参考地址:http://www.mybatis.org/mybatis-3/zh/index.html MyBatis 的真正强大在于它的映射语句,也是它的魔力所在.由于它的异常强大,映射器 ...
- Mybatis学习—XML映射文件
总结自 Mybatis官方中文文档 Mapper XML 文件 MyBatis 的真正强大在于它的映射语句,也是它的魔力所在.由于它的异常强大,映射器的 XML 文件就显得相对简单.如果拿它跟具有相同 ...
- mybatis 学习三 关键文件解析
1: mybatis-config.xml <?xml version="1.0" encoding="UTF-8" ?> <!DOCTYP ...
- Mybatis的XML映射文件(四)
MyBatis 的真正强大在于它的映射语句,也是它的魔力所在.由于它的异常强大,映射器的 XML 文件就显得相对简单.如果拿它跟具有相同功能的 JDBC 代码进行对比,你会立即发现省掉了将近 95% ...
随机推荐
- redis持久化那些事(kēng)儿
这是一篇包含了介绍性质和吐槽性质的日志.主要介绍一下我学习redis持久化时候被坑的经历.redis的使用介绍现在没有打算写,因为比较多,以我如此懒的性格...好吧,还是有点这方面想法的,不过一篇博客 ...
- LRU缓存算法与pylru
这篇写的略为纠结,算法原理.库都是现成的,我就调用了几个函数而已,这有啥好写的?不过想了想,还是可以介绍一下LRU算法的原理及简单的用法. LRU(Least Recently Used,最近最少 ...
- 文件是数据(字节)流的抽象-为什么C++中会把文件操作抽象为fstream?
这不过是返祖罢了.正确的问题是为什么会把数据流抽象成文件. 设备-字节流-文件. 一切皆为文件,所有不同种类的类型都被抽象成文件(比如:块设备,socket套接字,pipe队列). 文件抽象为数据流一 ...
- Git 初始化全局user.name 和 user.email
git config --global user.name "username" git config --global user.email "email"
- 第六章.MyBatis缓存结构
一级缓存 测试案例: MyBatisTest.java //缓存 @Test public void testFindCustomerCache1() throws Exception{ SqlSes ...
- 解决mac 下mysql安装后root用户登录密码错误问题
使用的mac OS 10.11 安装mysql后访问root/root用户失败,网上找了一些解决办法,下面记录下解决方法方便以后自己查询 概述(看懂下面就不用看了): 停服务:sudo /usr/l ...
- h5做的app和原生app的区别
之所以说h5做的app和原生app的区别,是因为一位博友的问题: 随着 h5 的普及,是不是不再需要开发 app ? 我的回答是要分业务需求,分场合而定. 比如现在的微信小程序这么流行,甚至也取代了不 ...
- maven学习利用Profile构建不同环境的部署包
项目开发好以后,通常要在多个环境部署,象我们公司多达5种环境:本机环境(local).(开发小组内自测的)开发环境(dev).(提供给测试团队的)测试环境(test).预发布环境(pre).正式生产环 ...
- 二十、在Intellij IDEA中使用Debug
Debug用来追踪代码的运行流程,通常在程序运行过程中出现异常,启用Debug模式可以分析定位异常发生的位置,以及在运行过程中参数的变化.通常我们也可以启用Debug模式来跟踪代码的运行流程去学习三方 ...
- 用DecimalFormat格式化十进制数字的实际应用
在项目中,有时候我们需要将数字转换成特定的格式便于操作和使用.最常用的就是在操作价格数字的时候,需要将数字转换成小数点后保留两位小数,比如讲3.4转换成3.40 我们可以用DecimalFormat, ...