当前位置: 首页 > article >正文

Mybatis核心配置文件概述

MyBatis核心配置文件层级关系

  • configuration配置

  • properties属性

  • settings设置

  • typeAliases类型别名

  • typeHandlers类型处理器

  • objectFactory对象工厂

  • plugins插件

  • environments环境

    environrnent 环境变量

    transactionManager事务管理器

    dataSource数据源

  • databaseldProvider数据库厂商标识

  • mappers映射器

核心配置文件

<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE configuration
        PUBLIC "-//mybatis.org//DTD Config 3.0//EN"
        "http://mybatis.org/dtd/mybatis-3-config.dtd">
<configuration>
    <environments default="development">指定默认的环境名称
        <environment id="development"> 指定当前环境名称
            <transactionManager type="JDBC"/>指定事务管理类型是JDBC
            <dataSource type="POOLED"> 指定当前数据源类型是连接池
                配置的数据库基本参数
                <property name="driver" value="com.mysql.jdbc.Driver"/>
                <property name="url" value="jdbc:mysql://localhost:3306/mybatis"/>
                <property name="username" value="root"/>
                <property name="password" value="a1988121188"/>
            </dataSource>
        </environment>
    </environments>
    <mappers>
        <mapper resource="org/DAO/User-mapper.xml"/>
    </mappers>
</configuration>

environments环境

<environments default="development">指定默认的环境名称 <environment id="development"> 指定当前环境名称

id="development"指向的是default="development" , 改成 id="abc"指向的是default="abc",当前环境不变

transactionManager事务管理器

其中,事务管理器(transactionManager)类型有两种:

  • JDBC(常用):这个配置就是直接使用了JDBC的提交和回滚设置,它依赖于从数据源得到的连接来管理事务作用域。

  • MANAGED:这个配置几乎没做什么。它从来不提交或回滚一个连接,而是让容器来管理事务的整个生命周期(比如JE应用服务器的上下文)。默认情况下它会关闭连接,然而一些容器并不希望这样,因此需要将closeConnection属性设置为false来阻止它默认的关闭行为。

dataSource 数据源

其中,数据源(dataSource)类型有三种: UNPOOLED:这个数据源的实现只是每次被请求时打开和关闭连接。 POOLED:这种数据源的实现利用“池”的概念将JDBC连接对象组织起来。 JNDI:这个数据源的实现是为了能在如EJB或应用服务器这类容器中使用,容器可以集中或在外部配置数据源,然后放置一个JNDI上下文的引用。

mappers

<mappers> <mapper resource="org/DAO/User-mapper.xml"/> </mappers>

该标签的作用是加载映射的,加载方式有如下几种:

  • 使用相对于类路径的资源引用(常用)

    例如:<mapper resource="org/mybatis/builder/AuthorMapper.xml"/>·

  • 使用完全限定资源定位符(URL),例如:mapperurl="file:///var/mappers/AuthorMapper.xml"/·

  • 使用映射器接口实现类的完全限定类名

    例如: <mapper class="org.mybatis.builder.AuthorMapper"/>

  • 将包内的映射器接口实现全部主册为映射器

    例如: <package name="org.mybatis.builder"/>

    typeAliases(定义别名)

    通常情况下 mybatis 已经把基础数据类型 和常用引用类型 自动定义好了别名 例如Interger 的别名是int

<typeAliases> <typeAlias type="org.pojo.User" alias="user"></typeAlias> </typeAliases>

把User这个实体类 起个别名 user 这样更方便使用

如果随意在配置文件里面定义别名会触发这个bug,可以看到它是因为配置的顺序不对引发的bug

它要求定义别名要在properties之后 ,带?号的参数代表可写可不写


http://www.kler.cn/a/153477.html

相关文章:

  • Centos7安装
  • 深度学习早停机制(Early Stopping)与早退机制(Early exiting)
  • Rust语言项目实战(二) - 准备键盘和终端屏幕
  • uni-app 微信小程序之自定义中间圆形tabbar
  • 电梯导航的小练习
  • 【漏洞复现】大华智慧园区综合管理平台deleteFtp接口远程命令执行
  • 解决git action发布报错:Input required and not supplied: upload_url
  • 手机上的记事本怎么打开?安卓手机通用的记事本APP
  • SVG图片选择库组件封装及使用
  • 企业真题(数组\面向对象-基础)
  • 智慧安防三大信息技术:云计算、大数据及人工智能在视频监控EasyCVR中的应用
  • 华为OD机试真题-最大坐标值-2023年OD统一考试(C卷)
  • 一起学docker系列之十五深入了解 Docker Network:构建容器间通信的桥梁
  • Servlet概念视频笔记
  • 播放器开发(七):音视频同步实现
  • Linux:vim的简单使用
  • JavaScript 内存泄漏的检测与防范:让你的程序更稳定
  • PTA 7-188 水仙花数
  • 计算机网络——数据链路层-封装成帧(帧定界、透明传输-字节填充,比特填充、MTU)
  • centos上安装并持久化配置LVS