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 连接信息。
应用实例
- 创建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
-
修改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. & 表示 & 防止解析错误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>
- 修改父项目的pom.xml(如果已经配置了*.properties 就不用再配置) 并完成测试
settings 全局参数定义
- 感兴趣的可以看手册
- settings 列表,通常使用默认
应用实例
<!--配置MyBatis自带的日志输出-查看原生的sql--><settings><setting name="logImpl" value="STDOUT_LOGGING"/></settings>
typeAliases 别名处理器
-
别名是为Java 类型命名一个短名字。它只和XML 配置有关,用来减少类名重复的部分
-
如果指定了别名,我们的MappperXxxx.xml 文件就可以做相应的简化处理
-
注意指定别名后,还是可以使用全名的
举例说明
- 修改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>
- 修改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 类型处理器
- 用于java 类型和jdbc 类型映射
- Mybatis 的映射基本已经满足,不太需要重新定义
- 这个我们使用默认即可,也就是mybatis 会自动的将java 和jdbc 类型进行转换.
- 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. & 表示 & 防止解析错误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配置
- resource 注册Mapper 文件: XXXMapper.xml 文件(常用)
<mapper resource="com/nlc/mapper/MonsterMapper.xml"/><!--解读1. 如果是通过注解的方式,可不再使用 MonsterMapper.xml2. 但是需要在mybatis-config.xml注册/引入含注解的类3. 如果没有引入,不能使用-->
- class:接口注解实现(使用过)
<!--解读1. 如果是通过注解的方式,可不再使用 MonsterMapper.xml2. 但是需要在mybatis-config.xml注册/引入含注解的类3. 如果没有引入,不能使用--><mapper class="com.nlc.mapper.MonsterAnnotation"/>
-
url:外部路径,使用很少,不推荐,
<mapper url="file:///D:\yy\kk\yy\MOnsterMapper.xml" />
-
package 方式注册: 并测试
<!--
1. 当一个包下有很多的Mapper.xml 文件和基于注解实现的接口时,
为了方便,我们可以以包方式进行注册
2. 将下面的所有xml 文件和注解接口都进行注册
-->
<package name="com.nlc.mapper"/>
相关文章:
![](https://img-blog.csdnimg.cn/e5285636f1f5414195728edc94cf68f9.png)
mybatis-config.xml-配置文件详解
文章目录 mybatis-config.xml-配置文件详解说明文档地址:配置文件属性解析properties 属性应用实例 settings 全局参数定义应用实例 typeAliases 别名处理器举例说明 typeHandlers 类型处理器environments 环境environment 属性应用实例 mappers配置 mybatis-config.xml-配置文…...
![](https://img-blog.csdnimg.cn/496beddc52df4d26b7c48097fb2b98e4.jpeg#pic_center)
【雕爷学编程】MicroPython动手做(18)——掌控板之声光传感器
知识点:什么是掌控板? 掌控板是一块普及STEAM创客教育、人工智能教育、机器人编程教育的开源智能硬件。它集成ESP-32高性能双核芯片,支持WiFi和蓝牙双模通信,可作为物联网节点,实现物联网应用。同时掌控板上集成了OLED…...
![](https://img-blog.csdnimg.cn/img_convert/00db804f1dbcde56c6bec9998297ab16.png)
Ribbon源码
学了feign源码之后感觉,这部分还是按运行流程分块学合适。核心组件什么的,当专业术语学妥了。序章:认识真正のRibbon 但只用认识一点点 之前我们学习Ribbon的简单使用时,都是集成了Eureka-client或者Feign等组件,甚至在…...
![](https://img-blog.csdnimg.cn/8c129fe8babd44d886af3d04c8b485b6.png)
Linux下在终端输入密码隐藏方法
Linux系统中,如何将在终端输入密码时将密码隐藏? 最近做简单的登录界面时,不做任何操作的话,在终端输入密码的同时也会显示输入的密码是什么,这样对于隐蔽性和使用都有不好的体验。那么我就想到将密码用字符*隐藏起来…...
![](https://www.ngui.cc/images/no-images.jpg)
【ARM 常见汇编指令学习 3 -- ARM64 无符号位域提取指令 UBFX】
文章目录 ARM64 无符号位域提取指令 上篇文章:ARM 常见汇编指令学习 2 – 存储指令 STP 与 LDP 下篇文章:ARM 常见汇编指令学习 4 – ARM64 比较指令 cbnz 与 b.ne 区别 ARM64 无符号位域提取指令 在代码中如何监控寄存器的某1bit, 或者某几…...
![](https://img-blog.csdnimg.cn/img_convert/03212c814a9b4150f941c93b61f3e0ca.jpeg)
求分享如何批量压缩视频的容量的方法
视频内存过大,不但特别占内存,而且还会使手机电脑出现卡顿的现象,除此之外,如果我们想发送这些视频文件可能还会因为内存太大无法发送。因此,我们可以批量地压缩视频文件的内存大小,今天小编要来分享一招&a…...
![](https://cdn.analyticsvidhya.com/wp-content/uploads/2023/05/test.drawio-1.png)
ChatGPT 是如何工作的:从预训练到 RLHF
欢迎来到人工智能的未来:生成式人工智能!您是否想知道机器如何学习理解人类语言并做出相应的反应?让我们来看看ChatGPT ——OpenAI 开发的革命性语言模型。凭借其突破性的 GPT-3.5 架构,ChatGPT 席卷了世界,改变了我们…...
![](https://img-blog.csdnimg.cn/61f0164363fc4673bd0dec9081afe0df.png)
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…...
![](https://img-blog.csdnimg.cn/81fdeaaf62e24dbe81653a03fcf37ad3.png)
【自动化运维】playbook剧本
目录 一、Ansible 的脚本 playbook 剧本1.1playbooks的组成 二、剧本编写实验2.1定义、引用变量2.2使用远程主机sudo切换用户2.3whenn条件判断2.4迭代 三、Templates 模板四、Tags模板 一、Ansible 的脚本 playbook 剧本 1.1playbooks的组成 (1)Tasks&…...
![](https://www.ngui.cc/images/no-images.jpg)
java中双引号和单引号的区别
起因 刷题的时候,有判断是否相同的情况,然后我发现单引号和双引号在上的表现不一样,所以记录一下。 解释 在Java中,双引号(" ")和单引号(’ )在使用上有很重要的区别&a…...
![](https://www.ngui.cc/images/no-images.jpg)
jenkinsfile指定jenkins流水线的构建号
背景 升级Jenkins过程中不小心导致流水线配置文件job目录丢失, 重新配置流水线后所有流水线构建号码都从1开始构建了, 然而我们的产品关联了jenkins构建号,重新从1 构建会导致各种问题. 解决方案 在Jenkinsfile文件中指定流水线的构建号为一个不存在的数字, 这样就不会冲突了…...
![](https://img-blog.csdnimg.cn/4cb818ff911746db96d7936b98a8cdc5.png)
微信小程序:实现提示窗确定,取消执行不同操作(消息提示确认取消)showModal
效果 代码 wx.showModal({title: 提示,content: 是否确认退出,success: function (res) {if (res.confirm) {console.log(用户点击确定)} else if (res.cancel) {console.log(用户点击取消)}}})...
![](https://img-blog.csdnimg.cn/4841621a4339461daf718701d0ba38fe.png#pic_center)
深度学习论文: 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]是一种强大的机器学习算法,在许多领域都取得了显著的成功。它由多个决策树组成,而决策树则是构建随机森林的基本组件之一。通过深入解析决策树,我们可以更好地理解随机森林模型的工作原理和内在机制。 决策树是一种树状结…...
![](https://img-blog.csdnimg.cn/img_convert/e71675e1045340407ab2fc55e1468cf4.png)
OceanMind海睿思获评中国信通院“内审数字化产品评测”卓越级(最高级)!
2023年7月27日,由中国内部审计协会、中国通信标准化协会指导,中国信息通信研究院主办的第二届数字化审计论坛在北京成功召开。 大会聚焦内部审计数字化领域先进实践、研究成果、行业发展举措,重磅发布了多项内部审计数字化领域的最新研究和实…...
![](https://img-blog.csdnimg.cn/img_convert/0cd8d6fcd21200595707875a6835413a.webp?x-oss-process=image/format,png)
TPlink云路由器界面端口映射设置方法?快解析内网穿透能实现吗?
有很多网友在问:TPlink路由器端口映射怎么设置?因为不懂端口映射的原理,所以无从下手,下面小编就给大家分享TPlink云路由器界面端口映射设置方法,帮助大家快速入门TP路由器端口映射设置方法。 1.登录路由器管理界面&a…...
![](https://img-blog.csdnimg.cn/img_convert/f00a7e55955f770ab8d4889f5dc337c1.png)
css3的filter图片滤镜使用
业务介绍 默认:第一个图标为选中状态,其他三个图标事未选中状态 样式:选中状态是深蓝,未选中状体是浅蓝 交互:鼠标放上去选中,其他未选中,鼠标离开时候保持当前选中状态 实现:目前…...
![](https://img-blog.csdnimg.cn/6d638da3f67d4514b01f62166d7740cf.png)
❤️创意网页:打造炫酷网页 - 旋转彩虹背景中的星星动画
✨博主:命运之光 🌸专栏:Python星辰秘典 🐳专栏:web开发(简单好用又好看) ❤️专栏:Java经典程序设计 ☀️博主的其他文章:点击进入博主的主页 前言:欢迎踏入…...
![](https://www.ngui.cc/images/no-images.jpg)
react常用知识点
React是一个用于构建用户界面的JavaScript库。以下是React常用的知识点: 组件:React将用户界面分解成小而独立的组件,每个组件都有自己的状态和属性,并且可以通过组合这些组件来构建复杂的用户界面。 // 函数组件示例 function We…...
![](https://www.ngui.cc/images/no-images.jpg)
iOS开发-QLPreviewController与UIDocumentInteractionController显示文档
iOS开发-QLPreviewController与UIDocumentInteractionController显示文档 在应用中,我们有时想预览文件, 可以使用QLPreviewController与UIDocumentInteractionController 一、QLPreviewController与UIDocumentInteractionController QLPreviewController是一个 UIViewContr…...
![](https://www.ngui.cc/images/no-images.jpg)
八、用 ChatGPT 帮助排查生产事故
目录 一、实验介绍 二、背景 三、故障排查概述 3.1 生产环境故障排查涉及的角色...
![](https://www.ngui.cc/images/no-images.jpg)
WPF实战学习笔记25-首页汇总
注意:本实现与视频不一致。本实现中单独做了汇总接口,而视频中则合并到国todo接口当中了。 添加汇总webapi接口添加汇总数据客户端接口总数据客户端接口对接3首页数据模型 添加数据汇总字段类 新建文件MyToDo.Share.Models.SummaryDto using System;…...
![](https://img-blog.csdnimg.cn/3ccf28c2cd1d4e5ba8a6ca7852c4aa5d.png)
FreeRTOS源码分析-7 消息队列
目录 1 消息队列的概念和作用 2 应用 2.1功能需求 2.2接口函数API 2.3 功能实现 3 消息队列源码分析 3.1消息队列控制块 3.2消息队列创建 3.3消息队列删除 3.4消息队列在任务中发送 3.5消息队列在中断中发送 3.6消息队列在任务中接收 3.7消息队列在中断中接收 1 消…...
![](https://img-blog.csdnimg.cn/a516756f301642e183fd37f735c37b9a.png)
机器学习深度学习——权重衰减
👨🎓作者简介:一位即将上大四,正专攻机器学习的保研er 🌌上期文章:机器学习&&深度学习——模型选择、欠拟合和过拟合 📚订阅专栏:机器学习&&深度学习 希望文章对你…...
![](https://img-blog.csdnimg.cn/7c9d14a671294a6684c5c6ded88297d5.png)
【Linux】线程互斥 -- 互斥锁 | 死锁 | 线程安全
引入互斥初识锁互斥量mutex锁原理解析 可重入VS线程安全STL中的容器是否是线程安全的? 死锁 引入 我们写一个多线程同时访问一个全局变量的情况(抢票系统),看看会出什么bug: // 共享资源, 火车票 int tickets 10000; //新线程执行方法 vo…...
![](https://www.ngui.cc/images/no-images.jpg)
【vue-pdf】PDF文件预览插件
1 插件安装 npm install vue-pdf vue-pdf GitHub:https://github.com/FranckFreiburger/vue-pdf#readme 参考文档:https://www.cnblogs.com/steamed-twisted-roll/p/9648255.html catch报错:vue-pdf组件报错vue-pdf Cannot read properti…...
![](https://img-blog.csdnimg.cn/e206b36a957247058876d0a1601ca415.png)
Flink集群运行模式--Standalone运行模式
Flink集群运行模式--Standalone运行模式 一、实验目的二、实验内容三、实验原理四、实验环境五、实验步骤5.1 部署模式5.1.1 会话模式(Session Mode)5.1.2 单作业模式(Per-Job Mode)5.1.3 应用模式(Application Mode&a…...
![](https://www.ngui.cc/images/no-images.jpg)
Spring整合JUnit实现单元测试
Spring整合JUnit实现单元测试 一、引言 在软件开发过程中,单元测试是保证代码质量和稳定性的重要手段。JUnit是一个流行的Java单元测试框架,而Spring是一个广泛应用于Java企业级开发的框架。本文将介绍如何使用Spring整合JUnit实现单元测试,…...
![](https://www.ngui.cc/images/no-images.jpg)
Spring Boot学习路线1
Spring Boot是什么? Spring Boot是基于Spring Framework构建应用程序的框架,Spring Framework是一个广泛使用的用于构建基于Java的企业应用程序的开源框架。Spring Boot旨在使创建独立的、生产级别的Spring应用程序变得容易,您可以"只是…...
![](https://img-blog.csdnimg.cn/4d7f67d001f445c5b2bffa6c74fbfa75.gif#pic_center)
管理类联考——写作——论说文——实战篇——标题篇
角度3——4种材料类型、4个立意对象、5种写作态度 经过审题立意后,我们要根据我们的立意,确定一个主题,这个主题必须通过文章的标题直接表达出来。 标题的基本要求 主题清晰,态度明确 第一,阅卷人看到一篇论说文的标…...
![](https://img-blog.csdnimg.cn/img_convert/677db526d9103b74cdfe62f1fd5f8de9.png)
徐州手机网站建设公司哪家好/搜索引擎优化答案
2017 年 10 月 15 日,Kubernetes End User Conference (KEUC) 即将揭开神秘面纱。聚焦 Kubernetes 中国行业应用与技术落地,致力于为业界带来最新 Kubernetes 与容器技术和行业应用案例展示,本次大会邀请到了 Google、VMware、华为、IBM、网易…...
![](https://img-blog.csdnimg.cn/img_convert/bea8cc99aeb7991556e674c6cde8902f.png)
休闲零食网站建设 中企动力/杭州百度seo
为什么要远程连接Linux系统??在实际的工作场景中,虚拟机界面或物理服务器本地的窗口都是很少能够接触到的,因为服务器装完系统后,都要拉到IDC机房托管,如果是购买了云主机,更碰不到服务器本地显…...
![](https://img-blog.csdnimg.cn/img_convert/f997fbc10dda29eb1605baa08e5a7e02.png)
自己做的小网站分享/如何去做网络营销
问题答案整理自互联网,非原创~事务的特性:(Atom)原子性: 事务包含的所有操作要么全部成功,要么全部失败回滚 (Consistency)一致性: 事务必须使数据库从一个一致性状态变换到另一个一致性状态 eg: 户A和用户B两者的钱加起来一共是5000…...
![](http://www.idcps.com/uploadfile/2014/1103/20141103043914959.png)
不让网站在手机怎么做/进入百度app
IDC评述网(idcps.com)11月04日报道:根据百度统计的最新数据显示,10月国内浏览器市场份额情况整体呈现下降趋势,其中IE的份额为47.75%,环比上月,下降了0.70%,降幅最大。而Chrome则扭转…...
网站建设英语/百度搜图片功能
摘自MSDN,以VS2012版为主 1、hash类模板 定义如下: [cpp] view plaincopy template<class Ty> struct hash : public unary_function<Ty, size_t> { size_t operator()(Ty _Val) const; }; 并给出一个例子&am…...
![](https://images0.cnblogs.com/blog/331622/201305/19122340-83a7d761f263483e84cfd8d8b0b360e1.gif)
潍坊专业网站制作公司营销/企业网站推广模式
转载于:https://www.cnblogs.com/zhouwenwu/archive/2013/05/19/3086688.html...