【Mybatis】mybatis-config.xml配置文件详解

一、环境配置(environments)

  1. MyBatis 可以配置成适应多种环境,这种机制有助于将 SQL 映射应用于多种数据库之中
  1. 不过要记住:尽管可以配置多个环境,但每个 SqlSessionFactory 实例只能选择一种环境。
  1. 如果你想连接两个数据库,就需要创建两个 SqlSessionFactory 实例,每个数据库对应一个。而如果是三个数据库,就需要三个实例,依此类推,如下
<configuration>
		<!--default="development"与id="development"对应-->
		<environments default="development">
			<environment id="development">
				<transactionManager type="JDBC"/>
				<dataSource type="POOLED">
				    .<property name="driver" value="${driver}"/>
	                <property name="url" value="${url}"/>
	                <property name="username" value="${username}"/>
	                <property name="password" value="${password}"/>
				</dataSource>
			</environment>
			<environment id="test">
				<transactionManager type="JDBC"/>
				<dataSource type="POOLED">
				    <property name="driver" value="${driver}"/>
	                <property name="url" value="${url}"/>
	                <property name="username" value="${username}"/>
	                <property name="password" value="${password}"/>
				</dataSource>
			</environment>
		</environments>
	</configuration>
  1. 事务管理器(transactionManager)
    在 MyBatis 中有两种类型的事务管理器(也就是 type="[JDBC|MANAGED]"):
    JDBC – 这个配置直接使用了 JDBC 的提交和回滚设施,它依赖从数据源获得的连接来管理事务作用域。
    MANAGED – 这个配置几乎没做什么。它从不提交或回滚一个连接,而是让容器来管理事务的整个生命周期(比如 JEE 应用服务器的上下文)。
  1. 数据源(dataSource)
    dataSource 元素使用标准的 JDBC 数据源接口来配置 JDBC 连接对象的资源。
    有三种内建的数据源类型(也就是 type="[UNPOOLED|POOLED|JNDI]"):默认使用POOLED
    UNPOOLED– 这个数据源的实现会每次请求时打开和关闭连接。
    POOLED– 这种数据源的实现利用“池”的概念将 JDBC 连接对象组织起来,避免了创建新的连接实例时所必需的初始化和认证时间。
    JNDI – 这个数据源实现是为了能在如 EJB 或应用服务器这类容器中使用,容器可以集中或在外部配置数据源,然后放置一个 JNDI 上下文的数据源引用.

二、属性(properties)

1.属性可以在外部进行配置,并可以进行动态替换。你既可以在典型的 Java 属性文件中配置这些属性,也可以在 properties 元素的子元素中设置
在这里插入图片描述
值得注意的是,< properties>一定要是在< configuration>中的顶部的,你想的没错,< configuration>中的标签时有优先级的

注意:当db.properties和< property>属性名相同时,db.properties属性的优先级是高于< property>中的,即会优先使用db.properties中的属性



2.配置db.properties文件
在这里插入图片描述
配置完db.properties文件后,mybatis-config.xml中的< environments >就可以使用如下格式:
在这里插入图片描述

三、类型别名(typeAliases)

类型别名可为 Java 类型设置一个缩写名字。它仅用于 XML 配置,意在降低冗余的全限定类名书写,我们可以在xxxMapper.xml中使用别名.

在mybatis-config.xml中配置别名:

第一种方式:定位到具体的实体类“alias”中的值就是别名。
在这里插入图片描述



第二种方式:定位到包
在这里插入图片描述
每一个在包 domain.blog 中的 Java Bean,在没有注解的情况下,会使用 Bean 的首字母小写的非限定类名来作为它的别名。
比如说:blog下面有一个User类,那么User类的别名就是user

若有实体类有注解,则别名为其注解值:
在这里插入图片描述

在UserMapper.xml中使用别名
在这里插入图片描述

四、映射器(mappers)

我们需要告诉 MyBatis 到哪里去找到这些语句。 在自动查找资源方面,Java 并没有提供一个很好的解
决方案,所以最好的办法是直接告诉 MyBatis 到哪里去找映射文件.

常用的3中注册方式:

第一种:(推荐使用):

<!-- 使用相对于类路径的资源引用 -->
<mappers>
  <mapper resource="org/mybatis/builder/AuthorMapper.xml"/>
  <mapper resource="org/mybatis/builder/BlogMapper.xml"/>
  <mapper resource="org/mybatis/builder/PostMapper.xml"/>
</mappers>


第二种:(不推荐使用):
<!-- 使用映射器接口实现类的完全限定类名 -->
<mappers>
  <mapper class="org.mybatis.builder.AuthorMapper"/>
  <mapper class="org.mybatis.builder.BlogMapper"/>
  <mapper class="org.mybatis.builder.PostMapper"/>
</mappers>

注意:使用class的方式mapper注册时,需要有两条要求
1. xxxMapper接口与xxxMapper.xml必须同名
2. xxxMapper接口与xxxMapper.xml必须在同一个包下


第三种:
<!-- 将包内的映射器接口实现全部注册为映射器 -->
<mappers>
  <package name="org.mybatis.builder"/>
</mappers>

注意:使用class的方式mapper注册时,需要有两条要求
1. xxxMapper接口与xxxMapper.xml必须同名
2. xxxMapper接口与xxxMapper.xml必须在同一个包下

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值