MyBatis配置文件 —— 相关标签详解

news2025/1/30 15:55:13

目录

一、Mybatis配置文件 — properties标签

二、Mybatis配置文件 — settings标签

三、Mybatis配置文件 — plugins标签

四、Mybatis配置文件 — typeAliases标签

五、Mybatis配置文件 — environments标签

六、Mybatis配置文件 — mappers标签


一、Mybatis配置文件 — properties标签

MyBatis配置文件结构:

-configuration

        -properties(属性)

                -property

        -settings(全局配置参数)

                -setting

        -plugins(插件)

                -plugin

        -typeAliases(别名)

                -typeAliase

                -package

        -environments(环境)

                -environment

                        -transactionManager(事务管理)

                        -dataSource(数据源)

        -mappers(映射器)

                -mapper

                -package

properties

属性值定义。properties标签中可以定义属性值,也可以引入外部配置文件。无论是内部定义还是外部引入,都可以使用${name}获取值。

例如:我们可以将数据源配置写到外部的db.properties中,再使用properties标签引入外部配置文件,这样可以做到动态配置数据源。

① 编写db.properties

jdbc.driver = com.mysql.cj.jdbc.Driver
jdbc.url = jdbc:mysql://localhost:3306/mybatis
jdbc.username = root
jdbc.password = 666666

② 在配置文件中引入db.properties

    <properties resource="db.properties">
    </properties>
    <environments default="mysql">
        <environment id="mysql">
            <!-- 事务类型 -->
            <transactionManager type="JDBC"></transactionManager>
            <!-- 数据源 -->
            <dataSource type="POOLED">
                <property name="driver" value="${jdbc.driver}"/>
                <property name="url" value="${jdbc.url}"/>
                <property name="username" value="${jdbc.username}"/>
                <property name="password" value="${jdbc.password}"/>
            </dataSource>
        </environment>
    </environments>

        当然我们也可以将数据源数据通过 <properties> 配置到MyBatis配置文件内,但这样做没什么意义。

 测试一下findAll方法是否测功执行

OK,说明了确实可以的。 

二、Mybatis配置文件 — settings标签

        <settings> 是配置MyBatis运行时的一些行为的,例如缓存、延迟加载、命名规则等一系列控制性参数。后期我们会使用该标签配置缓存和延迟加载等。

三、Mybatis配置文件 — plugins标签

        <plugins> 是配置MyBatis插件的。插件可以增强MyBatis功能,比如进行sql增强,打印日志,异常处理等。后期我们会使用该标签配置分页插件。

四、Mybatis配置文件 — typeAliases标签

        MyBatis对常用类有默认别名支持,比如java.lang.Stirng的别名为string。除此之外,我们也可以使用 <typeAliases> 设置自定义别名。

        为一个类配置别名,如下图所示

<typeAliases>
 <typeAlias type="全类名" alias="别名"></typeAlias>
</typeAliases>

        此时我们即可在映射文件中使用自定义别名,如帮User类配置一个别名
① 配置文件:

    <typeAliases>
        <typeAlias type="com.mybatisstudy.pojo.User" alias="User"></typeAlias>
    </typeAliases>

② 映射文件:

    <select id="findAll" resultType="User">
        select * from user
    </select>

③ 测试findAll方法:

        OK,同样是可以执行的,说明该方法可以使用 。

        为一个所有包下的所有类配置别名

<typeAliases>
    <package name="包名"></package>
</typeAliases>

        此时该包下的所有类都有了别名,别名省略包名,和类名相同。

        如:

① 配置文件:

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

② 映射文件:

    <select id="findPage2" resultType="User" parameterType="PageQuery">
        select * from user limit #{startIndex},#{pageSize}
    </select>

③ 测试结果:

         OK,同样可以运行,说明该方法也可以使用。

五、Mybatis配置文件 — environments标签

        <environments> 可以为 MyBatis 配置数据环境。

事务管理

<environments default="mysql">
    <environment id="mysql">
        <!-- JDBC:使用JDBC的提交和回滚MANAGED:不做事务处理-->
        <transactionManager type="JDBC"></transactionManager>
    </environment>
</environments>

连接池

<environments default="mysql">
    <environment id="mysql">
        <transactionManager type="JDBC"></transactionManager>
        <!-- 连接池设置 -->
        <dataSource type="POOLED">
            <!-- 数据源设置... -->
        </dataSource>
    </environment>
</environments>

dataSourcetype属性:

  1.  POOLED:使用连接池管理连接,使用MyBatis自带的连接池。
  2.  UNPOOLED:不使用连接池,直接由JDBC连接。
  3.  JNDI:由JAVAEE服务器管理连接,如果使用Tomcat作为服务器则使用Tomcat自带的连接池管理。

六、Mybatis配置文件 — mappers标签

        <mappers> 用于注册映射文件或持久层接口,只有注册的映射文件才能使用,共有四种方式都可以完成注册:

① 使用相对路径注册映射文件

    <mappers>
        <mapper resource="com/mybatisstudy/mapper/UserMapper.xml"></mapper>
    </mappers>

② 使用绝对路径注册映射文件

<mappers>  
    <mapper url="file:///C:\javaProjects\mybatiscase\mybatisDemo1\src\main\resources\com\itbaizhan\mapper\UserMapper.xml"/>
</mappers>

③ 注册持久层接口

<mappers>  
    <mapper class="com.itbaizhan.mapper.UserMapper"/>
</mappers>

④ 注册一个包下的所有持久层接口

<mappers>
    <package name="com.itbaizhan.mapper"/>
</mappers>

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/413464.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

burp抓包https链接不安全解决方法

在浏览器已经导入Burpsuite的证书之后,抓包,浏览器仍然显示抓取https包提示不是私密链接解决方法 适用于没有继续访问的按钮。 方法一: 浏览器输入 chrome://flags 搜索 Allow invalid certificates for resources loaded from localhost.翻译过来就是 允许从本地主机加载资…

2023 年十大目标检测模型!

2023 年十大目标检测模型&#xff01; 使用深度学习革新对象检测的综合指南。 对象检测示例 “目标检测是计算机视觉中最令人兴奋和最具挑战性的问题之一&#xff0c;而深度学习已成为解决它的强大工具。” 对象检测是计算机视觉中的一项基本任务&#xff0c;涉及识别和定位…

SpringBoot与RabbitMQ 集成以及死信队列,TTL,延迟队列

简单示例 项目结构依赖配置生产者消费者 消息的可靠投递示例 confirmreturn 消费者确认机制消费端限流TTL 单条消息整个队列设置 TTL 死信队列 死信队列的实现步骤 延迟队列消息幂等设计 简单示例 项目结构 依赖 <dependencies><dependency><groupId>org.…

【Linux 裸机篇(一)】ARM Cortex-A 架构基础、汇编基础

目录一、ARM Cortex-A 架构基础1. Cortex-A 处理器运行模型2. Cortex-A 寄存器组2.1 通用寄存器2.1.1 未备份寄存器2.1.2 备份寄存器2.1.3 程序计数器 R152.2 程序状态寄存器二、ARM 汇编基础1. GNU 汇编语法1.1 语句1.2 段1.3 伪操作1.4 函数2. 常用汇编指令2.1 处理器内部数据…

你的订婚|结婚纪念日是质数吗?进来测算看看……

今年开年以来&#xff0c;随着ChatGPT的爆火&#xff0c;原本一直平静的三六零安全科技股份有限公司&#xff08;下称360&#xff09;股价仅2月以来涨幅就达到近200%。然而4月4日晚间&#xff0c;360发布公告称&#xff0c;公司董事长周鸿祎与妻子胡欢离婚。有意思的是&#xf…

【Java版oj】day25星际密码、数根

目录 一、洗牌 &#xff08;1&#xff09;原题再现 &#xff08;2&#xff09;问题分析 &#xff08;3&#xff09;完整代码 二、数根 &#xff08;1&#xff09;原题再现 &#xff08;2&#xff09;问题分析 &#xff08;3&#xff09;完整代码 一、洗牌 &#xff08;1&…

过度的焦虑 到底有多糟

你们知道过度的焦虑到底有多糟糕吗&#xff1f; 现在生活节奏越来越快&#xff0c;不管是生活、工作还是学习&#xff0c;很多方面都给我们带来了很多的压力问题&#xff0c;我们所承受的负担越来越重&#xff0c;很多人时常处于一种非常疲劳、过度的焦虑的状态。 你们知道过度…

什么是Node.js

文章目录什么是Node.js简介常用命令Node内置模块Node.js和JavaScript的区别什么是Node.js 简介 Node.js是一个基于Chrome V8引擎的JavaScript运行环境。它允许开发者使用JavaScript编写服务器端代码&#xff0c;而不仅仅是浏览器端的代码。Node.js的出现使得JavaScript可以在…

Vue环境下安装Less|Sass|Stylus(详细指南)

Vue_Cli环境下如何使用less、sass、stylus&#xff1f;报错如何解决&#xff1f; 安装Less 依次使用以下npm执行命令即可完后less的安装 npm install lessnpm install less-loader在vue组件style中使用less <style lang"less"></style>安装Sass(三者之…

如何抓住ChatGPT的热潮,打造小红书爆款

如何抓住ChatGPT的热潮&#xff0c;打造小红书爆款 前两周我看到一个小红书才申请了没多久就已经有好几万的粉丝&#xff0c;于是我让我老婆也赶紧注册一个&#xff0c;毕竟小红书也有着不错的用户群体 那么我们如何通过GPT辅助我们快速创作呢&#xff1f;先来看下ChatGPT的回答…

《离散数学导学》精炼——第6,7章(类型集合论,谓词逻辑)

引言 笔者一直觉得在计算机这一学科的学习中&#xff0c;离散数学是极为重要的知识基础。离散化的思想体现在计算机学科的方方面面。举例来说&#xff0c;“像素”这一概念是我们日常生活中耳熟能详的&#xff0c;将一个图片拆分成一个个极微小的像素&#xff0c;就是利用了离…

[1] 顺序表实现

一、引入顺序表 提出问题&#xff1a; 顺序表底层是一个数组&#xff0c;为什么不是直接操作数组就好了&#xff0c;还要单独写一个类&#xff0c;说底层是数组呢&#xff1f;&#xff1f; 因为顺序表可以有更多的操作&#xff1a; 比如一个数组&#xff0c;我们没有办法知…

Android 11.0 原生SystemUI下拉通知栏UI背景设置为圆角背景的定制(二)

1.前言 在11.0的系统rom定制化开发中,在原生系统SystemUI下拉状态栏的下拉通知栏的背景默认是白色四角的背景, 由于在产品设计中,在对下拉通知栏通知的背景需要把四角背景默认改成圆角背景,所以就需要分析系统原生下拉通知栏的每条通知的默认背景, 然后通过systemui的通知…

MobTech 秒验|极速验证,拉新无忧

一、运营拓展新用户的难题 运营拓展新用户是每个应用都需要面对的问题&#xff0c;但是在实际操作中&#xff0c;往往会遇到一些困难。其中一个主要的难题就是注册和登录的繁琐性。用户在使用一个新的应用时&#xff0c;通常需要填写手机号、获取验证码、输入验证码等步骤&…

Java-红黑树的实现

目录一、概述二、红黑树的操作1. 变色2. 左旋与右旋3. 插入节点4. 删除节点三、手写代码1. 通用方法2. 中序遍历3. 左旋4. 右旋5. 添加节点6. 删除节点四、完整代码五、测试1. 红黑树打印类2. 测试代码3. 测试结果一、概述 关于红黑树的学习&#xff0c;先推荐给大家一个网址&…

Centos7安装部署Jenkins

Jenkins简介&#xff1a; Jenkins只是一个平台&#xff0c;真正运作的都是插件。这就是jenkins流行的原因&#xff0c;因为jenkins什么插件都有 Hudson是Jenkins的前身&#xff0c;是基于Java开发的一种持续集成工具&#xff0c;用于监控程序重复的工作&#xff0c;Hudson后来被…

文章自动生成器 -原创文章生成器在线版

怎么将ChatGPT生成文章保存 在使用ChatGPT生成文章后&#xff0c;您可以使用以下几种方法将其保存起来&#xff1a; 复制粘贴&#xff1a;最简单的方法是将生成的文章文本复制并粘贴到文本编辑器或其他文本处理软件中&#xff0c;如Word文档或Google Docs&#xff0c;以保存文…

I2C通信

一、理论上了解I2C时序 I2C写数据时序如图&#xff1a; 通过解析器解析I2C通信如上图&#xff08;SCL和SDA反了&#xff09;。 1---起始信号 2、3---应答信号ACK 5---停止信号 起始信号&#xff1a;SCL线是高电平时&#xff0c;SDA线从高电平向低电平切换。 停…

一个大二学生送给大一学弟学妹的建议

博主简介&#xff1a;先简单的介绍一下我吧&#xff0c;本人是一名大二学生&#xff0c;来自四川。目前所学专业是人工智能&#xff0c;致力于在CSDN平台分享自己的学习内容。 我为什么要写这篇文章&#xff1f; 我来到CSDN也已经一年了&#xff0c;在这一年里面&#xff0c;我…

go binary包

binary包使用与详解 最近在看一个第三方包的库源码&#xff0c;bigcache&#xff0c;发现其中用到了binary 里面的函数&#xff0c;所以准备研究一下。 可以看到binary 包位于encoding/binary&#xff0c;也就是表示这个包的作用是编辑码作用的&#xff0c;看到文档给出的解释…