MyBatis 学习记录03--07/11--全局配置文件详解

MyBatis 学习记录03--07/11--全局配置文件详解

一、引入提示

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映射配置文件与接口同包名同包下同名
可以使用上面的企业版写法,效果相同。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值