MyBatis配置解析

1、核心配置文件

  • mybatis-config.xml 系统核心配置文件
  • MyBatis 的配置文件包含了会深深影响 MyBatis行为的设置和属性信息。
  • 能配置的内容如下:
configuration(配置)
    properties(属性)    
    settings(设置)    
    typeAliases(类型别名)    
    typeHandlers(类型处理器)    
    objectFactory(对象工厂)    
    plugins(插件)    
    environments(环境配置)        
    environment(环境变量)            
    transactionManager(事务管理器)            
    dataSource(数据源)    
    databaseIdProvider(数据库厂商标识)    
    mappers(映射器) 
<!-- 注意元素节点的顺序!顺序不对会报错 -->

2、environments元素

<environments default="development">  
	<environment id="development">    
		<transactionManager type="JDBC">      
			<property name="..." value="..."/>    
		</transactionManager>    
		<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>
  • 配置MyBatis的多套运行环境,将SQL映射到多个不同的数据库上,必须指定其中一个为默认运行 环境(通过default指定)
  • 子元素节点:environment
    • 具体的一套环境,通过设置id进行区别,id保证唯一!
    • 子元素节点:transactionManager - [ 事务管理器 ] <!-- 语法 --> <transactionManager type="[ JDBC | MANAGED ]"/>
    • 这两种事务管理器类型都不需要设置任何属性。
  • 子元素节点:数据源(dataSource)
    • dataSource 元素使用标准的 JDBC 数据源接口来配置 JDBC 连接对象的资源。
    • 数据源是必须配置的
    • 有三种内建的数据源类型type="[UNPOOLED|POOLED|JNDI]")
    • unpooled: 这个数据源的实现只是每次被请求时打开和关闭连接。
    • pooled: 这种数据源的实现利用“池”的概念将 JDBC 连接对象组织起来 , 这是一种使得 并发 Web 应用快速响应请求的流行处理方式。
    • jndi:这个数据源的实现是为了能在如 Spring 或应用服务器这类容器中使用,容器可以 集中或在外部配置数据源,然后放置一个 JNDI 上下文的引用
    • 数据源也有很多第三方的实现,比如dbcp,c3p0,druid等等

3、mappers元素

  1. mappers
    • 映射器 : 定义映射SQL语句文件
    • 既然 MyBatis 的行为其他元素已经配置完了,我们现在就要定义 SQL 映射语句了。但是首先我们 需要告诉 MyBatis 到哪里去找到这些语句。 Java 在自动查找这方面没有提供一个很好的方法,所 以佳的方式是告诉 MyBatis 到哪里去找映射文件。你可以使用相对于类路径的资源引用, 或完 全限定资源定位符(包括 file:/// 的 URL),或类名和包名等。映射器是MyBatis中核心 的组件之一,在MyBatis 3之前,只支持xml映射器,即:所有的SQL语句都必须在xml文件中配 置。而从MyBatis 3开始,还支持接口映射器,这种映射器方式允许以Java代码的方式注解定义SQL 语句,非常简洁。
  2. 引入资源方式
<!-- 使用相对于类路径的资源引用 --> 
<mappers>  
<mapper resource="org/mybatis/builder/PostMapper.xml"/> 
</mappers>
<!-- 使用完全限定资源定位符(URL) --> 
<mappers>  
<mapper url="file:///var/mappers/AuthorMapper.xml"/> 
</mappers>
<!-- 使用映射器接口实现类的完全限定类名 需要配置文件名称和接口名称一致,并且位于同一目录下 --> 
<mappers>  
<mapper class="org.mybatis.builder.AuthorMapper"/> 
</mappers>
<!-- 将包内的映射器接口实现全部注册为映射器 但是需要配置文件名称和接口名称一致,并且位于同一目录下 --> 
<mappers>  
<package name="org.mybatis.builder"/> 
</mappers>
  1. Mapper文件
<?xml version="1.0" encoding="UTF-8" ?> 
<!DOCTYPE mapper        
	PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"        
	"http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="com.kuang.mapper.UserMapper">     
</mapper>

  • namespace中文意思:命名空间,作用如下
    • namespace和子元素的id联合保证唯一 , 区别不同的mapper
    • 绑定DAO接口
      • namespace的命名必须跟某个接口同名
      • 接口中的方法与映射文件中sql语句id应该一一对应
    • namespace命名规则 : 包名+类名

MyBatis 的真正强大在于它的映射语句,这是它的魔力所在。由于它的异常强大,映射器的 XML 文件就 显得相对简单。如果拿它跟具有相同功能的 JDBC 代码进行对比,你会立即发现省掉了将近 95% 的代 码。MyBatis 为聚焦于 SQL 而构建,以尽可能地为你减少麻烦。
4. Properties优化
数据库这些属性都是可外部配置且可动态替换的,既可以在典型的 Java 属性文件中配置,亦可通过 properties 元素的子元素来传递。

优化配置文件

第一步:在资源目录下新建一个db.properties

driver=com.mysql.jdbc.Driver 
url=jdbc:mysql://localhost:3306/mybatis? useSSL=true&useUnicode=true&characterEncoding=utf8 
username=root 
password=123456

第二步:将文件导入properties配置文件

configuration>

    <!--引入外部配置文件-->
    <properties resource="db.properties">

    </properties>

    <!--可以给实体类起别名-->
    <typeAliases>
        <typeAlias type="com.zang.pojo.User" alias="User"/>
    </typeAliases>

    <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="${pwd}"/>
            </dataSource>
        </environment>
    </environments>

    <!--每一个Mapper.XML都需要在Mybatis核心配置文件中注册!-->
    <mappers>
        <mapper resource="com/zang/dao/UserMapper.xml"/>
        <!--<mapper class="com.kuang.zang.UserMapperper-->
        <!--<package name="com.zang.dao"/>-->
    </mappers>


</configuration>
  1. typeAliases优化
    类型别名是为 Java 类型设置一个短的名字。它只和 XML 配置有关,存在的意义仅在于用来减少类完全 限定名的冗余
<!--配置别名,注意顺序--> 
<typeAliases>    
<typeAlias type="com.zang.pojo.User" alias="User"/> 
</typeAliases>

当这样配置时, User 可以用在任何使用 com.zang.pojo.User 的地方
也可以指定一个包名,MyBatis 会在包名下面搜索需要的 Java Bean,比如:

<typeAliases>    
<package name="com.zang.pojo"/> 
</typeAliases>

每一个在包 com.kuang.pojo 中的 Java Bean,在没有注解的情况下,会使用 Bean 的首字母小写的 非限定类名来作为它的别名。
若有注解,则别名为其注解值。见下面的例子:

@Alias("user") 
public class User {    
... 
}

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
经导师精心指导并认可、获 98 分的毕业设计项目!【项目资源】:微信小程序。【项目说明】:聚焦计算机相关专业毕设及实战操练,可作课程设计与期末大作业,含全部源码,能直用于毕设,经严格调试,运行有保障!【项目服务】:有任何使用上的问题,欢迎随时与博主沟通,博主会及时解答。 经导师精心指导并认可、获 98 分的毕业设计项目!【项目资源】:微信小程序。【项目说明】:聚焦计算机相关专业毕设及实战操练,可作课程设计与期末大作业,含全部源码,能直用于毕设,经严格调试,运行有保障!【项目服务】:有任何使用上的问题,欢迎随时与博主沟通,博主会及时解答。 经导师精心指导并认可、获 98 分的毕业设计项目!【项目资源】:微信小程序。【项目说明】:聚焦计算机相关专业毕设及实战操练,可作课程设计与期末大作业,含全部源码,能直用于毕设,经严格调试,运行有保障!【项目服务】:有任何使用上的问题,欢迎随时与博主沟通,博主会及时解答。 经导师精心指导并认可、获 98 分的毕业设计项目!【项目资源】:微信小程序。【项目说明】:聚焦计算机相关专业毕设及实战操练,可作课程设计与期末大作业,含全部源码,能直用于毕设,经严格调试,运行有保障!【项目服务】:有任何使用上的问题,欢迎随时与博主沟通,博主会及时解答。
经导师精心指导并认可、获 98 分的毕业设计项目!【项目资源】:微信小程序。【项目说明】:聚焦计算机相关专业毕设及实战操练,可作课程设计与期末大作业,含全部源码,能直用于毕设,经严格调试,运行有保障!【项目服务】:有任何使用上的问题,欢迎随时与博主沟通,博主会及时解答。 经导师精心指导并认可、获 98 分的毕业设计项目!【项目资源】:微信小程序。【项目说明】:聚焦计算机相关专业毕设及实战操练,可作课程设计与期末大作业,含全部源码,能直用于毕设,经严格调试,运行有保障!【项目服务】:有任何使用上的问题,欢迎随时与博主沟通,博主会及时解答。 经导师精心指导并认可、获 98 分的毕业设计项目!【项目资源】:微信小程序。【项目说明】:聚焦计算机相关专业毕设及实战操练,可作课程设计与期末大作业,含全部源码,能直用于毕设,经严格调试,运行有保障!【项目服务】:有任何使用上的问题,欢迎随时与博主沟通,博主会及时解答。 经导师精心指导并认可、获 98 分的毕业设计项目!【项目资源】:微信小程序。【项目说明】:聚焦计算机相关专业毕设及实战操练,可作课程设计与期末大作业,含全部源码,能直用于毕设,经严格调试,运行有保障!【项目服务】:有任何使用上的问题,欢迎随时与博主沟通,博主会及时解答。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值