MyBatis 学习记录03--07/11--全局配置文件详解
MyBatis 学习记录03--07/11--全局配置文件详解
- 1. property:
- 2. type:
- 3. 实例:
- 3.1 全局配置文件写代码:
- 3.2 导入oracle驱动到lib包下:
- 3.3 sql映射配置文件写代码:
- 3.4 修改properties文件: mysql和oracle
- 3.5 bug修改---mysql映射配置文件
- 3.6 mysql映射配置文件中sql语句的几种写法
一、引入提示
1. 引入dtd约束文件:
1)连网时,可以直接点击下载文件
2)没连网时
1.1
Referenced Libraries — mybatis-3.4.1.jar — org-apache.ibatis-builder.xml
- mybatis-3-config.dtd—全局配置文件
- mybatis-3-mapper.dtd—sql映射配置文件
1.2 找到dtd文件
在电脑中找到mybatis-3.4.1.jar包
用压缩软件打开
org–apache–ibatis–builder–xml–解压出来“mybatis-3-config.dtd”和“mybatis-3-mapper.dtd”两个文件
1.3 引入
1.3.1 打开全局配置文件,复制url
1.3.2 window–Perference–XML–XML Catalog–Add
1.3.3 属性
key:url
keyType:URI
Location:File System—解压后放的地址
二、标签
1. properties
1)作用
2) 属性
3) 实现
1)在conf包下 new – file –
File Name: dbconfig.properties
文件中将全局配置文件中的datasource内容粘贴过来
2)全局配置文件
因为在类路径下,使用resource来绑定properties文件
value值均用${}来动态绑定properties中的名字
2. settings
1)成分:
1.1 settings:包含多个设置项
1.2setting:每一个设置项
2)设置名:
2.1 mapUnderscoreToCamelCase 驼峰设置
<settings> <setting name="mapUnderscoreToCamelCase" value="true"/> </settings>
设置后,下划线后的第一个字母大写
db字段名:A_COLLUMN -----成功映射> java属性名:aColumn db字段名:last_name -----成功映射> java属性名:lastName 不用再在sql语句中起别名
3. typeAliases
注意:别名不区分大小写
1)作用:
别名处理器,为java type起一个别名,不需要每次都写全类名
之前在sql映射文件中总是要写全类名
2) typeAlias:为每一个java type起别名
<typeAliases> <typeAlias type="com.atguigu.mybatis.bean.Employee" alias="employee"> </typeAliases>
**alias如果不写的话,只写type,默认值就是全类名的小写employee
**type:制定药企别名的java type的全类名
此时sql映射配置文件中的resultType可以使用别名
3) package:为某个包下的所有java type起别名
当前包,以及下面所有后代包的每一个java type都起
拥有一个默认别名:类名的小写
下面两种写法“employee”和“Employee”均可
注意:别名不区分大小写
问题:包与子包均有一个类叫Employee时,会报错
4. typeHandlers类型处理器
可以进行多种处理,例如:
java的string如何与db的varchar进行识别转换
<typeHandlers> <typeHandler> </typeHandlers>
3. plugins插件
1)作用:
intercept calls:拦截–实为动态代理
2)4大插件:
Executor:执行器
Parameterhandler:参数处理器
ResultSetHandler:结果集处理器
Statementhandler:sql语句处理器
4. environments可以配置多种环境
1)environment:
每一个envir可以配置一个具体的环境信息,但必须与transactionManager和dataSource两个标签同时使用
1.1 id:
当前环境的唯一标识,default可与其绑定
1.2 transactionManager标签:
type=“JDBC”
type=“MANAGED”—JEE服务器来管理实务
type=“实现类全类名”—自定义事务管理器—implememts TransactionFactory
1.3 dataSource标签:
type=“POOLED”—shiyong mybatis自带的连接池
type=“UNPOOLED”—每一次增删改查均会从数据库中拿一次新的连接,不用连接池
type=“JNDI”
type=“实现类全类名”—自定义dataSource----implements DataSourceFactory
2)default:
动态指定使用某种环境,可以达到快速切换环境
开发环境:使用本地数据库,进行开发调试
测试环境:使用专门调试数据库
<environments default="test"> //或切换成"development" <environment id="test"> <transactionManager type="JDBC"/> <dataSource type="POOLED"/> </environment> <environment id="development"> <transactionManager type="JDBC"/> <dataSource type="POOLED"/> </environment> </environment>
例子1:
例子2:
value里的内容与properties里面的内容保持一致
以后均由spring来完成
5. databaseIdProvider:支持多种数据库厂商
1. property:
为不同的数据库厂商起别名
2. type:
全名:VendorDatabaseIdProvider
得到数据库厂商的标识(驱动自带),mybatis可根据不同的数据库厂商来执行不同的sql
3. 实例:
3.1 全局配置文件写代码:
<databaseIdProvider type="DB_VENDOR"> <property name="MySQL" value="mysql"/> <property name="ORACLE" value="oracle"/> <property name="SQL SERVER" value="sqlserver"/> </databaseIdProvider>
3.2 导入oracle驱动到lib包下:
在电脑中找Oracle下载的包
Oracle–product—11.2.0—dbhome_1—jdbc—lib—ojdbc6.jar—复制到lib包下—build path
3.3 sql映射配置文件写代码:
3.4 修改properties文件: mysql和oracle
3.5 bug修改—mysql映射配置文件
3.6 mysql映射配置文件中sql语句的几种写法
1)不带标记的(1)
2)带标记的(2,3)
例如,mysql中会默认加载1和2,但会自动执行有标记的2,舍弃没有标记的1
6. mappers:!!!将sql映射配置文件注册到全局配置文件中
每一个mapper负责注册一个sql映射配置文件
1)注册配置文件
1.1 resource:引用类路径下的sql映射配置文件
1.2 url:引用网络路径或磁盘路径下的sql映射配置文件
url = “file:///var/mappers/AuthorMapper.xml”
2)注册接口
2.1使用sql映射文件
2.1.1将接口Interface EmployeeMapper.java文件的全类名放在class中
2.1.2接口文件 EmployeeMapper.java与sql映射配置文件EmployeeMapper.xml一定要
同名
且
放在同一个目录中
2.2没有sql映射文件,使用注解
不用再为接口写sql映射配置文件并注册进去,而是在接口中直接加入注解
2.2.1 新建Interface
new–Interface–“EmployeeMapperAnnotation.java”
2.2.2 全局配置文件中使用class属性
2.2.3 测试类MyBatisTest.java
getMapper中写接口的类名
3)总结
建议写sql映射配置文件,方便抽象化和修改
比较重要的活着比较复杂的dao接口,写sql映射配置文件(1)
不重要活着简单的dao接口,可以使用注解方式(2)
修改:企业版写法
使用sql映射配置文件时——传统写法:接口与sql配置文件放在同一个目录下
可以在conf包下新建一个包(与接口所在的包同名)
src与conf等包都属于类路径,两个包中的文件都是lib包下的同一级中
因此src包下的dao包与conf包下的dao包其实是同一个东西,效果同上图,只是一种好看的写法
4)批量注册package
<mappers> <package name="接口所在的包名"> </mappers>
此时sql映射配置文件与接口同包名,同包下,同名。
可以使用上面的企业版写法,效果相同。
- Mybatis学习记录(三)--Mybatis配置文件详解
- Mybatis学习记录(三)--Mybatis配置文件详解
- Mybatis学习(二)————— 全局配置文件详解
- Mybatis学习总结(三)——SqlMapConfig.xml全局配置文件解析
- mybatis--全局配置文件详解
- Mybatis(二) 全局配置文件详解
- Spring+SpringMVC+MyBatis深入学习及搭建(三)——MyBatis全局配置文件解析
- 【Spring+SpringMVC+MyBatis深入学习及搭建】03.MyBatis全局配置文件解析
- Java学习-007-Log4J 日志记录配置文件详解及实例源代码
- 框架学习系列 mybatis 第十篇 mybatis 全局配置文件
- 框架学习系列 mybatis 第十三篇 mybatis 全局配置文件 二
- MyBatis学习总结_03_优化MyBatis配置文件中的配置
- Mybatis学习总结(三).Mybatis全局配置文件
- MyBatis学习之全局配置文件中各个标签的用途
- MyBatis 全局配置文件详解
- Spring基础学习教程(applicationContext.xml 配置文件 详解)-07
- mybatis学习(二)-- mybatis-config.xml配置文件详解
- Java数据持久层框架 MyBatis之API学习四(xml配置文件详解)
- MyBatis学习二 MyBatis的配置文件详解
- (三)mybatis学习之全局配置文件(sqlMapConfig.xml)