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% ...
随机推荐
- 2018.09.23模拟总结(T2)
T1,T3我就不说啦,反正也不会.主要想讲的是T2. T2用了一个神奇的算法:折半搜索. 因为这个坑爹的数据范围告诉我们暴搜或是状压会TLE,而一半刚好能卡过去. 折半搜索其实跟暴搜没什么区别,就是折 ...
- PHP------XML
XML XML的含义:可扩展标记语言,设计出来的目的是:传输数据 HTML的含义:超文本标记语言,设计出来的目的是:显示数据 它们两个设计出来的目的是不一样的. 它们两个都是标记语言,相似性比较高. ...
- 【题解】洛谷P1514 [NOIP2010TG] 引水入城(DFS+DP)
次元传送门:洛谷P1514 思路 可以证明如果有解 那么每个蓄水池可以覆盖到的干旱区必定是线段 证明: 举个栗子 8 9 8 7 9 7 6 9 6 明显到不了中间的点 如果不是连续的线段 中间肯定有 ...
- “->”和“.”运算符
1.指向结构变量的指针. 2.定义:struct stu *pstu, 赋值是把结构变量的首地址赋给指针,不能把结构名给该指针:如, pstu = &boy; 3. 访问结构变量的成员 (*结 ...
- Linux -- cal/bc/LANGE与帮助文档
cal 显示日历命令 使用cal命令,显示日历 cal [month] [year] 1.显示当前的日历 [root@localhost ~]# cal 一月 日 一 二 三 四 五 六 2.显示指定 ...
- Oracle数据库,简单SQL练习与答案
1.数据 --创建职员表create table tbEmp( eID number primary key, --职员编号 eName varchar2(20) not null, --职员姓名 e ...
- 苹果内购小结 - iOS
此篇针对 iOS 支付进行一次小结,很久没碰这块了,有些方法 Apple 官方也进行了优化,故也将随之进行更新. 首先,code 部分将分为两部分,一部分在 appdelegate 中,另一部分单独封 ...
- React--- react 初见React 总结
简介 react 程序代码是透明的,需要什么装什么 代码实现逻辑清晰可见 第一天 React 基础构造 分别是 继承的 React.component(继承的依赖类)/dom(dom元素)/pro ...
- 20181030noip模拟赛T1
YY的矩阵 YY有一个大矩阵(N*M), 矩阵的每个格子里都有一个整数权值W[i,j](1<=i<=M,1<=j<=N) 对于这个矩阵YY会有P次询问,每次询问这个大矩阵的一个 ...
- 复习宝典之Redis
查看更多宝典,请点击<金三银四,你的专属面试宝典> 第八章:Redis Redis是一个key-value的nosql数据库.先存到内存中,会根据一定的策略持久化到磁盘,即使断电也不会丢失 ...