mybatis_03----全局配置文件标签

1、properties

mybatis可以使用properties来引入外部properties配置文件的内容
两个参数

		resource:引入类路径下的配置文件
		url:引入网络路径或磁盘路径下的配置文件

dbconfig.properties

jdbc.driver=com.mysql.cj.jdbc.Driver
jdbc.url=jdbc:mysql://localhost:3306/baidu?useSSL=false&useUnicode=true&characterEncoding=utf-8&serverTimezone=UTC&allowPublicKeyRetrieval=true
jdbc.username=root
jdbc.password=jzb19981128

在这里插入图片描述

2、settings设置

settings包含许多重要的设置项

setting:用来设置每一个设置项
name:设置项名
value:设置项的取值

在这里插入图片描述

3、typeAliases

typeAliases:别名处理器,可以为java类型起别名,别名不区分大小写

typeAlias:为某个java类型起别名
type:指定要起别名的java类型的全类名;默认别名:类名的小写
alias:指定新的别名
在这里插入图片描述
在这里插入图片描述
批量起别名:为某个包下的所有类批量起别名
name:指定报名(为当前包下以及下面所有的后代包的每一个类都起一个默认的别名(类名的小写)
在这里插入图片描述
在这里插入图片描述
但是通过package包下进行批量起别名也会有问题,这是因为当包下的类名与该包下的某个包内的类名相同,此时会报错,因此有第三种为类名起别名的方式:在类里写注解别名
在批量起别名的情况下,使用@Alias注解为某个类型指定新的别名

在这里插入图片描述
在这里插入图片描述
推荐使用全类名的形式写返回值类型
在这里插入图片描述

4、plugins 插件机制

1)插件是 MyBatis 提供的一个非常强大的机制,我们可以通过插件来修改 MyBatis 的一些核心行为。插件通过动态代理机制,可以介入四大对象的任何一个方法的执行
2)四大对象:

Executor (update, query, flushStatements, commit, rollback, getTransaction, close, isClosed)
ParameterHandler (getParameterObject, setParameters) 
ResultSetHandler (handleResultSets, handleOutputParameters) 
StatementHandler (prepare, parameterize, batch, update, query)

5、environments 环境配置(后期由Spring替代)-了解

1)MyBatis 可以配置多种环境,比如开发、测试和生产环境需要有不同的配置
2)每种环境使用一个 environment 标签进行配置并指定唯一标识符
3)可以通过environments 标签中的default 属性指定一个环境的标识符来快速的切换环境
4)environment-指定具体环境
id:指定当前环境的唯一标识
transactionManager、和 dataSource 都必须有
在这里插入图片描述
5)transactionManager

type:	JDBC | MANAGED | 自定义
JDBC:使用了 JDBC 的提交和回滚设置,依赖于从数据源得到的连接来管理事务范围。 JdbcTransactionFactory
MANAGED:不提交或回滚一个连接、让容器来管理事务的整个生命周期(比如 JEE应用服务器的上下文)。 ManagedTransactionFactory
自定义:实现 TransactionFactory 接口,type=全类名/别名

6)dataSource

type:	UNPOOLED | POOLED | JNDI | 自定义
UNPOOLED:不使用连接池, UnpooledDataSourceFactory 
POOLED:使用连接池, PooledDataSourceFactory
JNDI: 在 EJB 或应用服务器这类容器中查找指定的数据源
自定义:实现 DataSourceFactory 接口,定义数据源的获取方式。

实际开发中我们使用 Spring 管理数据源,并进行事7)务控制的配置来覆盖上述配置

6、databaseIdProvider 数据库厂商标识

1)、MyBatis 可以根据不同的数据库厂商执行不同的语句
2)、Type: DB_VENDOR, 使用 MyBatis 提供的 VendorDatabaseIdProvider 解析数据库厂商标识。也可以实现 DatabaseIdProvider 接口来自定义.
会通过 DatabaseMetaData#getDatabaseProductName() 返回的字符串进行设置。由于通常情况下这个字符串都非常长而且相同产品的不同版本会返回不同的值,所以最好通过设置属性别名来使其变短.
Property-name:数据库厂商标识
Property-value:为标识起一个别名,方便 SQL 语句使用 databaseId 属性引用
在这里插入图片描述

3)、配置了 databaseIdProvider 后,在 SQL 映射文件中的增删改查标签中使用 databaseId
来指定数据库标识的别名
4)MyBatis 匹配规则如下:

1、如果没有配置 databaseIdProvider 标签,那么 databaseId=null
2、如果配置了 databaseIdProvider 标签,使用标签配置的 name 去匹配数据库信息, 匹配上设置 databaseId=配置指定的值,否则依旧为 null
3、如果 databaseId 不为 null,他只会找到配置 databaseId 的 sql 语句
4、MyBatis 会加载不带 databaseId 属性和带有匹配当前数据库 databaseId 属性的所有语句。如果同时找到带有 databaseId 和不带 databaseId 的相同语句,则后者会被舍弃。

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

7、mappers 映射器

1)、用来在 mybatis 初始化的时候,告诉 mybatis 需要引入哪些 Mapper 映射文件
2)、mapper 逐个注册 SQL 映射文件(class)

resource : 引入类路径下的文件
url :	引入网络路径或者是磁盘路径下的文件
class :	引入 Mapper 接口.

①有 SQL 映射文件 , 要求 Mapper 接口与 SQL 映射文件同名同位置.

<mappers>
<mapper class="com.atguigu.mybatis.dao.EmployeeMapper"/>
</mappers>

在这里插入图片描述
②没有 SQL 映射文件 , 使用注解在接口的方法上写 SQL 语句.
在这里插入图片描述

<mappers>
<mapper class="com.atguigu.mybatis.dao.EmployeeMapperAnnotation"/>
</mappers>

3)、使用批量注册,这种方式要求 SQL 映射文件名必须和接口名相同并且在同一目录下

<mappers>
<package name="com.atguigu.mybatis.dao"/>
</mappers>

注意:

标签先后顺序
在这里插入图片描述

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值