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

mybatis-config.xml-配置文件详解

文章目录

  • mybatis-config.xml-配置文件详解
    • 说明
    • 文档地址:
    • 配置文件属性解析
      • properties 属性
        • 应用实例
      • settings 全局参数定义
        • 应用实例
      • typeAliases 别名处理器
        • 举例说明
      • typeHandlers 类型处理器
      • environments 环境
        • environment 属性
        • 应用实例
      • mappers配置

mybatis-config.xml-配置文件详解

说明

mybatis 的核心配置文件(mybatis-config.xml),比如配置jdbc 连接信息,注册mapper等等,我们需要对这个配置文件有详细的了解。

文档地址:

官方文档: https://mybatis.org/mybatis-3/zh/configuration.html

配置文件属性解析

properties 属性

通过该属性,可以指定一个外部的jdbc.properties 文件,引入我们的jdbc 连接信息。

应用实例

  1. 创建NLC_MyBatis\mybatis_quickstart\src\main\resources\jdbc.properties
jdbc.user=root
jdbc.password=123456
jdbc.url=jdbc:mysql://127.0.0.1:3306/mybatis?userSSL=true&userUnicode=true&char
acterEncoding=UTF-8
jdbc.driver=com.mysql.jdbc.Driver
  1. 修改mybatis-confing.xml

    <?xml version="1.0" encoding="UTF-8" ?>
    <!DOCTYPE configurationPUBLIC "-//mybatis.org//DTD Config 3.0//EN""http://mybatis.org/dtd/mybatis-3-config.dtd">
    <configuration><!--引入外部的jdbc.properties--><properties resource="jdbc.properties"/><environments default="development"><environment id="development"><!--配置事务管理器--><transactionManager type="JDBC"/><!--配置数据源1. 我们使用外部的properties文件来设置相关的值2. 这个属性文件,需要统一放在 resources目录/类加载路径--><dataSource type="POOLED"><!--配置驱动--><property name="driver" value="${jdbc.driver}"/><!--从外部文件动态使用--><!--配置连接mysql-url解读:1. jdbc:mysql 协议2. 127.0.0.1:3306 : 指定连接mysql的ip+port3. mybatis: 连接的DB4. useSSL=true 表示使用安全连接5. &amp; 表示 & 防止解析错误6. useUnicode=true : 使用unicode 作用是防止编码错误7. characterEncoding=UTF-8 指定使用utf-8, 防止中文乱码--><property name="url" value="${jdbc.url}"/><property name="username" value="${jdbc.user}"/><property name="password" value="${jdbc.pwd}"/></dataSource></environment></environments>
    
    1. 修改父项目的pom.xml(如果已经配置了*.properties 就不用再配置) 并完成测试

settings 全局参数定义

  1. 感兴趣的可以看手册
  2. settings 列表,通常使用默认

应用实例

 <!--配置MyBatis自带的日志输出-查看原生的sql--><settings><setting name="logImpl" value="STDOUT_LOGGING"/></settings>

typeAliases 别名处理器

  1. 别名是为Java 类型命名一个短名字。它只和XML 配置有关,用来减少类名重复的部分

  2. 如果指定了别名,我们的MappperXxxx.xml 文件就可以做相应的简化处理

  3. 注意指定别名后,还是可以使用全名的

举例说明

  1. 修改NLC_MyBatis\mybatis_quickstart\src\main\resources\mybatis-config.xml
 <!--配置别名--><typeAliases><!-- 为某个mapper 指定一个别名, 下面可以在XxxxxMapper.xml 做相应简化处理--><!--<typeAlias type="com.nlc.entity.Monster" alias="Monster"/>--><!--如果一个包下有很多的类,我们可以直接引入包,这样该包下面的所有类名,可以直接使用--><package name="com.nlc.entity"/></typeAliases>
  1. 修改MonsterMapper.xml 并完成测试
<!--没有在mybatis-config.xml 指定typealiases 时,需要给Monster 指定全类名
<insert id="addMonster" parameterType="com.nlc.entity.Monster"-->
<!-- useGeneratedKeys="true" keyProperty="id"--><insert id="addMonster" parameterType="Monster" useGeneratedKeys="true" keyProperty="id"><!--useGenerated Keys是一个在数据库操作中常用的选项或属性。它用于指示数据库返回生成的主键值,keyProperty 用来定义和操作对象的主键。
-->INSERT INTO monster (age,birthday,email,gender,name,salary)VALUES(#{age},#{birthday},#{email},#{gender},#{name},#{salary})
</insert>

typeHandlers 类型处理器

  1. 用于java 类型和jdbc 类型映射
  2. Mybatis 的映射基本已经满足,不太需要重新定义
  3. 这个我们使用默认即可,也就是mybatis 会自动的将java 和jdbc 类型进行转换.
  4. java 类型和jdbc 类型映射关系一览[ 手册]
    https://mybatis.org/mybatis-3/zh/configuration.html#typeHandlers

environments 环境

1、MyBatis 可以配置多种环境,比如开发、测试和生成环境需要有不同的配置

2、每种环境使用一个 environment 标签进行配置并指定唯一标识符

3、可以通过 environment 标签中的 default 属性指定一个环境的标识符来快速的切换环境

environment 属性

environments:指定具体环境,mybatis 可以配置多种环境,default 指定使用某种环境,可以达到快速切换环境。

environment:配置一个具体的环境信息,id属性代表当前环境的唯一标识,

必须有下面两个标签:

​ transactionManager:事务管理器

​ dataSource:数据源

应用实例

<environments default="development"><environment id="development"><!--配置事务管理器--><transactionManager type="JDBC"/><!--配置数据源解读1. 我们使用外部的properties文件来设置相关的值2. 这个属性文件,需要统一的放在 resources目录/类加载路径--><dataSource type="POOLED"><!--配置驱动--><property name="driver" value="${jdbc.driver}"/><!--配置连接mysql-url解读:1. jdbc:mysql 协议2. 127.0.0.1:3306 : 指定连接mysql的ip+port3. mybatis: 连接的DB4. useSSL=true 表示使用安全连接5. &amp; 表示 & 防止解析错误6. useUnicode=true : 使用unicode 作用是防止编码错误7. characterEncoding=UTF-8 指定使用utf-8, 防止中文乱码8.温馨提示:不要背,直接使用即可--><property name="url" value="${jdbc.url}"/><property name="username" value="${jdbc.user}"/><property name="password" value="${jdbc.pwd}"/></dataSource></environment>
</environments>

mappers配置

  1. resource 注册Mapper 文件: XXXMapper.xml 文件(常用)
<mapper resource="com/nlc/mapper/MonsterMapper.xml"/><!--解读1. 如果是通过注解的方式,可不再使用 MonsterMapper.xml2. 但是需要在mybatis-config.xml注册/引入含注解的类3. 如果没有引入,不能使用-->
  1. class:接口注解实现(使用过)
 <!--解读1. 如果是通过注解的方式,可不再使用 MonsterMapper.xml2. 但是需要在mybatis-config.xml注册/引入含注解的类3. 如果没有引入,不能使用--><mapper class="com.nlc.mapper.MonsterAnnotation"/>
  1. url:外部路径,使用很少,不推荐,

    <mapper url="file:///D:\yy\kk\yy\MOnsterMapper.xml" />
    
  2. package 方式注册: 并测试

<!--
1. 当一个包下有很多的Mapper.xml 文件和基于注解实现的接口时,
为了方便,我们可以以包方式进行注册
2. 将下面的所有xml 文件和注解接口都进行注册
-->
<package name="com.nlc.mapper"/>

相关文章:

mybatis-config.xml-配置文件详解

文章目录 mybatis-config.xml-配置文件详解说明文档地址:配置文件属性解析properties 属性应用实例 settings 全局参数定义应用实例 typeAliases 别名处理器举例说明 typeHandlers 类型处理器environments 环境environment 属性应用实例 mappers配置 mybatis-config.xml-配置文…...

【雕爷学编程】MicroPython动手做(18)——掌控板之声光传感器

知识点&#xff1a;什么是掌控板&#xff1f; 掌控板是一块普及STEAM创客教育、人工智能教育、机器人编程教育的开源智能硬件。它集成ESP-32高性能双核芯片&#xff0c;支持WiFi和蓝牙双模通信&#xff0c;可作为物联网节点&#xff0c;实现物联网应用。同时掌控板上集成了OLED…...

Ribbon源码

学了feign源码之后感觉&#xff0c;这部分还是按运行流程分块学合适。核心组件什么的&#xff0c;当专业术语学妥了。序章&#xff1a;认识真正のRibbon 但只用认识一点点 之前我们学习Ribbon的简单使用时&#xff0c;都是集成了Eureka-client或者Feign等组件&#xff0c;甚至在…...

Linux下在终端输入密码隐藏方法

Linux系统中&#xff0c;如何将在终端输入密码时将密码隐藏&#xff1f; 最近做简单的登录界面时&#xff0c;不做任何操作的话&#xff0c;在终端输入密码的同时也会显示输入的密码是什么&#xff0c;这样对于隐蔽性和使用都有不好的体验。那么我就想到将密码用字符*隐藏起来…...

【ARM 常见汇编指令学习 3 -- ARM64 无符号位域提取指令 UBFX】

文章目录 ARM64 无符号位域提取指令 上篇文章&#xff1a;ARM 常见汇编指令学习 2 – 存储指令 STP 与 LDP 下篇文章&#xff1a;ARM 常见汇编指令学习 4 – ARM64 比较指令 cbnz 与 b.ne 区别 ARM64 无符号位域提取指令 在代码中如何监控寄存器的某1bit&#xff0c; 或者某几…...

求分享如何批量压缩视频的容量的方法

视频内存过大&#xff0c;不但特别占内存&#xff0c;而且还会使手机电脑出现卡顿的现象&#xff0c;除此之外&#xff0c;如果我们想发送这些视频文件可能还会因为内存太大无法发送。因此&#xff0c;我们可以批量地压缩视频文件的内存大小&#xff0c;今天小编要来分享一招&a…...

ChatGPT 是如何工作的:从预训练到 RLHF

欢迎来到人工智能的未来&#xff1a;生成式人工智能&#xff01;您是否想知道机器如何学习理解人类语言并做出相应的反应&#xff1f;让我们来看看ChatGPT ——OpenAI 开发的革命性语言模型。凭借其突破性的 GPT-3.5 架构&#xff0c;ChatGPT 席卷了世界&#xff0c;改变了我们…...

KafKa脚本操作

所有操作位于/usr/local/kafka_2.12-3.5.1/bin。 rootubuntu2203:/usr/local/kafka_2.12-3.5.1/bin# pwd /usr/local/kafka_2.12-3.5.1/bin rootubuntu2203:/usr/local/kafka_2.12-3.5.1/bin# ls connect-distributed.sh kafka-delegation-tokens.sh kafka-mirror-mak…...

【自动化运维】playbook剧本

目录 一、Ansible 的脚本 playbook 剧本1.1playbooks的组成 二、剧本编写实验2.1定义、引用变量2.2使用远程主机sudo切换用户2.3whenn条件判断2.4迭代 三、Templates 模板四、Tags模板 一、Ansible 的脚本 playbook 剧本 1.1playbooks的组成 &#xff08;1&#xff09;Tasks&…...

java中双引号和单引号的区别

起因 刷题的时候&#xff0c;有判断是否相同的情况&#xff0c;然后我发现单引号和双引号在上的表现不一样&#xff0c;所以记录一下。 解释 在Java中&#xff0c;双引号&#xff08;" "&#xff09;和单引号&#xff08;’ &#xff09;在使用上有很重要的区别&a…...

jenkinsfile指定jenkins流水线的构建号

背景 升级Jenkins过程中不小心导致流水线配置文件job目录丢失, 重新配置流水线后所有流水线构建号码都从1开始构建了, 然而我们的产品关联了jenkins构建号,重新从1 构建会导致各种问题. 解决方案 在Jenkinsfile文件中指定流水线的构建号为一个不存在的数字, 这样就不会冲突了…...

微信小程序:实现提示窗确定,取消执行不同操作(消息提示确认取消)showModal

效果 代码 wx.showModal({title: 提示,content: 是否确认退出,success: function (res) {if (res.confirm) {console.log(用户点击确定)} else if (res.cancel) {console.log(用户点击取消)}}})...

深度学习论文: Q-YOLO: Efficient Inference for Real-time Object Detection及其PyTorch实现

深度学习论文: Q-YOLO: Efficient Inference for Real-time Object Detection及其PyTorch实现 Q-YOLO: Efficient Inference for Real-time Object Detection PDF: https://arxiv.org/pdf/2307.04816.pdf PyTorch代码: https://github.com/shanglianlm0525/CvPytorch PyTorch代…...

解读随机森林的决策树:揭示模型背后的奥秘

一、引言 随机森林[1]是一种强大的机器学习算法&#xff0c;在许多领域都取得了显著的成功。它由多个决策树组成&#xff0c;而决策树则是构建随机森林的基本组件之一。通过深入解析决策树&#xff0c;我们可以更好地理解随机森林模型的工作原理和内在机制。 决策树是一种树状结…...

OceanMind海睿思获评中国信通院“内审数字化产品评测”卓越级(最高级)!

2023年7月27日&#xff0c;由中国内部审计协会、中国通信标准化协会指导&#xff0c;中国信息通信研究院主办的第二届数字化审计论坛在北京成功召开。 大会聚焦内部审计数字化领域先进实践、研究成果、行业发展举措&#xff0c;重磅发布了多项内部审计数字化领域的最新研究和实…...

TPlink云路由器界面端口映射设置方法?快解析内网穿透能实现吗?

有很多网友在问&#xff1a;TPlink路由器端口映射怎么设置&#xff1f;因为不懂端口映射的原理&#xff0c;所以无从下手&#xff0c;下面小编就给大家分享TPlink云路由器界面端口映射设置方法&#xff0c;帮助大家快速入门TP路由器端口映射设置方法。 1.登录路由器管理界面&a…...

css3的filter图片滤镜使用

业务介绍 默认&#xff1a;第一个图标为选中状态&#xff0c;其他三个图标事未选中状态 样式&#xff1a;选中状态是深蓝&#xff0c;未选中状体是浅蓝 交互&#xff1a;鼠标放上去选中&#xff0c;其他未选中&#xff0c;鼠标离开时候保持当前选中状态 实现&#xff1a;目前…...

❤️创意网页:打造炫酷网页 - 旋转彩虹背景中的星星动画

✨博主&#xff1a;命运之光 &#x1f338;专栏&#xff1a;Python星辰秘典 &#x1f433;专栏&#xff1a;web开发&#xff08;简单好用又好看&#xff09; ❤️专栏&#xff1a;Java经典程序设计 ☀️博主的其他文章&#xff1a;点击进入博主的主页 前言&#xff1a;欢迎踏入…...

react常用知识点

React是一个用于构建用户界面的JavaScript库。以下是React常用的知识点&#xff1a; 组件&#xff1a;React将用户界面分解成小而独立的组件&#xff0c;每个组件都有自己的状态和属性&#xff0c;并且可以通过组合这些组件来构建复杂的用户界面。 // 函数组件示例 function We…...

iOS开发-QLPreviewController与UIDocumentInteractionController显示文档

iOS开发-QLPreviewController与UIDocumentInteractionController显示文档 在应用中,我们有时想预览文件, 可以使用QLPreviewController与UIDocumentInteractionController 一、QLPreviewController与UIDocumentInteractionController QLPreviewController是一个 UIViewContr…...

告别检测卡点,okbiye 智能双优化破解毕业论文查重与 AI 识别难题

okbiye-免费查重复率aigc检测/开题报告/毕业论文/智能排版/文献综述/AI PPT降重复率 - Okbiye智能写作https://www.okbiye.com/reduceAIGC 一、引言&#xff1a;论文定稿阶段两大检测难题普遍困扰学子 论文撰写收尾阶段&#xff0c;绝大多数毕业生都会直面两道审核关卡&#x…...

Dism++:你的Windows系统优化瑞士军刀,16国语言支持的免费神器

Dism&#xff1a;你的Windows系统优化瑞士军刀&#xff0c;16国语言支持的免费神器 【免费下载链接】Dism-Multi-language Dism Multi-language Support & BUG Report 项目地址: https://gitcode.com/gh_mirrors/di/Dism-Multi-language 你是否曾为Windows系统越来越…...

【ChatGPT】锂电卷绕机深度拆解、信息图、爆炸图、C++代码框架

深度拆解信息图...

终极QR码修复指南:三步让损坏的二维码“起死回生“

终极QR码修复指南&#xff1a;三步让损坏的二维码"起死回生" 【免费下载链接】qrazybox QR Code Analysis and Recovery Toolkit 项目地址: https://gitcode.com/gh_mirrors/qr/qrazybox 你是否遇到过这样的尴尬场景&#xff1f;精心打印的会议签到二维码被咖…...

【金蝶云星空】出纳做账-付款退款单使用场景

学习目标学习本内容后&#xff0c;您将掌握如何使用付款退款单。业务场景付款退款单 付款退款单与付款业务对应&#xff0c;处理付款业务所发生的退款&#xff0c;包括采购业务付款的退款或者其他业务付款的退款。支持手工新增或者关联应付系统负数的应付单、其他应付单生成付…...

【CDA干货】用这4种数据分析思维,拆解爆款视频密码

很多做视频的人&#xff0c;发视频全凭感觉。今天视频火了&#xff0c;不知道为什么&#xff1b;明天流量掉了&#xff0c;也不知道哪里出了问题。其实&#xff0c;爆款背后从来不是运气&#xff0c;而是数据的逻辑。用数据分析思维做视频账号&#xff0c;就是把那些说不清道不…...

B站视频下载终极指南:5步掌握免费批量下载技巧

B站视频下载终极指南&#xff1a;5步掌握免费批量下载技巧 【免费下载链接】BilibiliDown (GUI-多平台支持) B站 哔哩哔哩 视频下载器。支持稍后再看、收藏夹、UP主视频批量下载|Bilibili Video Downloader &#x1f633; 项目地址: https://gitcode.com/gh_mirrors/bi/Bilib…...

Kubernetes节点管理:管理集群节点的关键策略

Kubernetes节点管理&#xff1a;管理集群节点的关键策略 一、Kubernetes节点管理概述 1.1 节点管理的定义 Kubernetes节点管理是指对集群中节点的生命周期进行管理的过程&#xff0c;包括节点的加入、配置、监控、维护和退出。它确保集群中的节点能够高效、可靠地运行工作负载。…...

G-Helper完整指南:释放华硕笔记本潜能的轻量级控制神器

G-Helper完整指南&#xff1a;释放华硕笔记本潜能的轻量级控制神器 【免费下载链接】g-helper Lightweight Armoury Crate alternative for Asus laptops with nearly the same functionality. Works with ROG Zephyrus, Flow, TUF, Strix, Scar, ProArt, Vivobook, Zenbook, E…...

Unity半透明模型单面显示问题的四大解决方案

1. 这个问题到底在烦谁&#xff1f;——从美术交接现场说起Unity里模型导入后“只有一面能看见&#xff0c;翻过去就变透明”&#xff0c;这事儿我见过太多次了。不是程序员写错了Shader&#xff0c;也不是美术导出时漏了法线&#xff0c;而是Unity默认的Front Face Culling&am…...