长生的梦呓


  • 归档
  • 算法
  • 基础
  • 关于

  • 分类
  • 日志
  • Servlet
  • Archive
  • 数据结构
  • IO 流

  • 标签
  • 友链
  • MyBatis
  • About
  • Spring 5
  • Java SE
  • Java EE
  • Algorithms
  • 新特性
  • 位运算技巧

  • 搜索
内网穿透 项目实战 数据库 MySQL 安卓踩坑 开发工具 设计模式 Enum 枚举 Linux MyBatis-plus JSON IDEA Transactions AOP IO 流 DP IoC 与 DI 位运算技巧 工具类 学习技巧 Git JDK 排序 Spring Boot Spring MVC Spring Framework MyBatis Log4J Regex Jsoup JDBC 数据结构 递推 递归 算法 Servlet与JSP 小难 中等 简单

【MyBatis】(2)xml 配置文件

发表于 2020-04-19 | 2 | 阅读次数 377

前言

该篇文章为mybatis-config.xml的笔记,主要记录 xml 配置文件中比较主要的配置(不是所有的配置)。也就是xml中的各种标签。参考自官方文档。

一、settings(设置)

这是 MyBatis 中极为重要的调整设置,它们会改变 MyBatis 的运行时行为。 下表 描述了设置中各项设置的含义、默认值等。

比如:logImpl属性,用于指定 MyBatis 所用日志的具体实现,未指定时将自动查找。

其他属性在 官网的表格 中已经详细描述了各个设置。

二、typeAliases(类型别名)

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

可以在xml配置文件中设置别名,这样就不需要在xml映射文件中写全限定路径了(全限定路径:包名+类名)。

三、environments(环境配置)

MyBatis 可以配置成适应多种环境,这种机制有助于将 SQL 映射应用于多种数据库之中, 现实情况下有多种理由需要这么做。例如,开发、测试和生产环境需要有不同的配置;或者想在具有相同 Schema 的多个生产数据库中使用相同的 SQL 映射。还有许多类似的使用场景。

environments 标签下只有一个标签元素,即environment:用于配置多种环境。environments 标签中的"default"属性表示默认使用的环境,default属性值为environment标签中的id值。

1.environment

environment 标签下有两个子标签,分别是transactionManager(事务管理器)和 dataSource(数据源)。

1.1 transactionManager(事务管理器)

在 MyBatis 中有两种类型的事务管理器(也就是 type="[JDBC|MANAGED]"):

  • JDBC – 这个配置直接使用了 JDBC 的提交和回滚设施,它依赖从数据源获得的连接来管理事务作用域。
  • MANAGED – 这个配置几乎没做什么。它从不提交或回滚一个连接,而是让容器来管理事务的整个生命周期(比如 JEE 应用服务器的上下文)。

注意:如果你正在使用 Spring + MyBatis,则没有必要配置事务管理器,因为 Spring 模块会使用自带的管理器来覆盖前面的配置。

备注:上面也就是说,如果使用了Spring(声明式事务),此时应该设置为MANAGED,即把事务转交给其他容器,相当于原生的JDBC事务setAutoCommit(false),自动提交设置成了false。此时其他容器(Spring)帮你提交,那么就是其他容器帮你回滚。

1.2 dataSource(数据源)

dataSource 元素使用标准的 JDBC 数据源接口来配置 JDBC 连接对象的资源。

有三种内建的数据源类型(也就是 type="[UNPOOLED|POOLED|JNDI]"):

  • UNPOOLED:这个数据源的实现会每次请求时打开和关闭连接。虽然有点慢,但对那些数据库连接可用性要求不高的简单应用程序来说,是一个很好的选择。 性能表现则依赖于使用的数据库,对某些数据库来说,使用连接池并不重要,这个配置就很适合这种情形。
  • POOLED:这种数据源的实现利用“池”的概念将 JDBC 连接对象组织起来,避免了创建新的连接实例时所必需的初始化和认证时间。 这种处理方式很流行,能使并发 Web 应用快速响应请求。POOLED:
  • JNDI:这个数据源实现是为了能在如 EJB 或应用服务器这类容器中使用,容器可以集中或在外部配置数据源,然后放置一个 JNDI 上下文的数据源引用。

三种数据源类型的属性详情请查看: 数据源(dataSource)

四、mappers(映射器)

我们需要告诉 MyBatis 到哪里去找到这些语句。 在自动查找资源方面,Java 并没有提供一个很好的解决方案,所以最好的办法是直接告诉 MyBatis 到哪里去找映射文件。 你可以使用相对于类路径的资源引用,或完全限定资源定位符(包括 file:/// 形式的 URL),或类名和包名等。

一共有四种方式:

  • 使用相对于类路径的资源引用
  • 使用完全限定资源定位符(URL)
  • 使用映射器接口实现类的完全限定类名
  • 将包内的映射器接口实现全部注册为映射器

代码如下:

    <!-- 映射器 -->
    <mappers>
        <!--用相对于类路径的资源引用(加载映射文件)-->
        <mapper resource="mapper/UserMapper.xml"></mapper>
        <!--将包内的映射器接口实现全部注册为映射器(加载接口)-->
        <!-- <mapper class="mapper.UserMapper"></mapper>-->
        <!--使用完全限定资源定位符(URL)(加载地址)-->
        <!--<mapper url="D://UserMapper.xml"></mapper>-->
        <!--使用映射器接口实现类的完全限定类名(加载接口实现类)-->
        <!--<package name="com.shengjava.mapper"></package>-->
    </mappers>

更多例子

  • 本文作者: 长生的梦呓
  • 本文链接: https://shengjava.com/archives/mybatis2xml配置文件
  • 版权声明: 本博客所有文章除特别声明外,均采用CC BY-NC-SA 3.0 许可协议。转载请注明出处!
# 内网穿透 # 项目实战 # 数据库 # MySQL # 安卓踩坑 # 开发工具 # 设计模式 # Enum # 枚举 # Linux # MyBatis-plus # JSON # IDEA # Transactions # AOP # IO 流 # DP # IoC 与 DI # 位运算技巧 # 工具类 # 学习技巧 # Git # JDK # 排序 # Spring Boot # Spring MVC # Spring Framework # MyBatis # Log4J # Regex # Jsoup # JDBC # 数据结构 # 递推 # 递归 # 算法 # Servlet与JSP # 小难 # 中等 # 简单
【FastJson】 简单使用
【MyBatis】(3)xml 映射文件
  • 文章目录
  • 站点概览
长生的梦呓

长生的梦呓

110 日志
39 分类
40 标签
RSS
E-mail CSDN
Creative Commons
Links
  • CSDN 地址
  • waltz26
  • Ryan Wang's Blog
  • JohnNiang's Blog
  • 廖雪峰
  • 菜鸟教程
© 2021 长生的梦呓
浙ICP备20005262号-1