mybatis之配置优化and映射器

news2024/11/28 18:42:03

环境配置:

mybatis可以配置成适应多种环境,但是要记住,尽管可以配置多个环境,但每个SqlSessionFactory实例只能选择一种环境

虽然,MyBatis 中有两种类型的事务管理器:type=("[JDBC|MANAGED]")
但是mybatis默认的事务管理器就是JDBC,连接池:POOLED

属性:

我们可以通过properties属性来实现引用配置文件,这些属性都是可外部配置且可动态替换的,既可以在典型的java属性文件中配置,也可以通过properties元素的子元素来传递[db.properties]

引入外部配置文件:

driver=com.mysql.jdbc.Driver
url=jdbc:mysql://localhost:3306/mybatis?useSSL=false&useUnicode=true&characterEncoding=UTF-8
user=root
password=xxx

在xml文件中,所有的标签都规定了其顺序,当我们把上述的properties标签,放在错误的位置时,就会报错:

在这里插入图片描述

mybatis-config.xml文件:

引入外部的配置文件:

在这里插入图片描述

注意!注意!

如果出现了下述这种错误,一定要去检查你的外部配置文件中的属性名和mybatis-config.xml配置中的属性名是否一致,比如我,一个写的user,一个写的username,找了好大一会呜呜呜呜

Access denied for user ‘root’@‘localhost’(using password:YES)

导入外部的配置文件和核心配置文件中映入同时存在时:

如果有两个文件包含同一个字段,那么会优先使用外部配置文件

在这里插入图片描述

报错如下:

当内置配置文件的密码正确,而引入外部配置文件的密码,错误时:

在这里插入图片描述
当内置配置文件的密码错误,而引入外部配置文件的密码,正确时:

查询成功:

在这里插入图片描述

别名优化:

方式1:

当实体类涉及很长时,我们可以通过typeAliases标签给它取别名:

<typeAliases>
    <typeAlias type="com.pojo.user" alias="MyUser"/>
</typeAliases>

那么在其他地方需要使用该实体时,我们就能直接使用别名啦。

方式2:

也可以指定一个包名,mybatis会在包名下面搜索需要的java bean,比如:
扫描实体类的包,它的默认别名就为这个类的类名,首字母小写

举例:

在mybatis-config.xml文件中指定包名:

在这里插入图片描述

studentsMapper.xml文件中:

在这里插入图片描述

在实体类比较少的时候,使用第一种方式,如果实体类比较多,建议使用第二种。第一种可以自定义别名,第二种则不行,如果使用第二种方式想要自定义别名,那么要在指定包的基础上再加注解,此后该类就可通过注解来辨识

如下所示:

在这里插入图片描述

映射器:

MapperRegistry:注册绑定我们的Mapper文件

方式1:

<!--每一个Mapper.xml都需要在mybatis核心配置文件中注册!-->
<mappers>
	<mapper resource="dao.userMapper.xml>
</mappers>

方式2:使用class文件绑定注册

<mappers>
	<mapper class="dao.userMapper/>
</mappers>

注意:

接口和它的Mapper配置文件必须同名,接口和它的Mapper配置文件必须在同一个包下

举例:
在这里插入图片描述

方式3:使用扫描包进行注入绑定

<mappers>
	<package name="dao"/>
</mappers>

注意:

接口和它的Mapper配置文件必须同名,接口和它的Mapper配置文件必须在同一个包下

举例:

在这里插入图片描述

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

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

相关文章

Web进阶:Day3 移动端特点、百分比布局、Flex布局、实战演练

Web进阶&#xff1a;Day3 Date: January 7, 2023 Summary: 移动端特点、百分比布局、Flex布局、实战演练 移动端特点 移动端和PC端网页不同点 PC端网页和移动端网页的有什么不同&#xff1f; PC屏幕大&#xff0c;网页固定版心 手机屏幕小&#xff0c; 网页宽度多数为100%…

【Docker】(五)使用bind mounts修改Docker容器中的Nginx配置

1.前言 本系列文章记录了从0开始学习Docker的过程&#xff0c;Docker系列历史文章&#xff1a; &#xff08;一&#xff09;基本概念与安装使用 &#xff08;二&#xff09;如何使用Docker发布一个SpringBoot服务 &#xff08;三&#xff09;使用registry远程镜像仓库管理镜像…

axios拦截器、ElementUI

一、axios拦截器 1、axios模块的作用 是对基于http请求的封装。在浏览器对异步请求对象XMLHttpRequest进行封装 2、拦截器 ​ &#xff08;1&#xff09;请求拦截器&#xff1a;对客户端发起的请求进行统一的前期处理&#xff08;token、时间戳、cookie等&#xff09; ​ …

linux系统中利用QT实现绘制图和图标的方法

大家好&#xff0c;今天主要和大家聊一聊&#xff0c;如何使用QT进行绘图和图标的方法。 第一&#xff1a;绘图和图表简介 绘图与图表在嵌入式里有的比较多&#xff0c;尤其是图表&#xff0c;我们常在股票里看到的“图表折线/曲线图/饼状图等”都可以用 Qt 的图表来实现。绘图…

生产制造业如何谋求数字化转型?需要哪些信息化系统做支撑?

生产制造业数字化转型有什么思路&#xff1f;生产制造业需要哪些信息化系统做支撑&#xff1f; 近年来&#xff0c;围绕新产品新模式新业态&#xff0c;国家重点部署了7个方向&#xff0c;包括数字化管理、平台化设计、智能化生产、网络化协同、个性化定制、服务化延伸、新型智…

Revit图纸问题:设置dwg图纸显示顺序和批量图纸编号

一、Revit中设置导入的dwg图纸的显示顺序 我们在实际工作中经常需要将各种DWG图纸导入到revit中进行参考&#xff0c;有时候希望它盖住已有模型&#xff0c;有时候又需要它在模型以下显示&#xff0c;即实现类似于CAD的图层显示顺序功能&#xff0c;应该如何才能实现呢&#xf…

Window Server 2022 无法安装网卡驱动 1219-v

安装过win10的朋友都知道,win10基本上不用自己下载驱动. 插上网线就能用. 但是今天在server2022上,死活无法安装成功. 原因有很多,网上也有很多资料. 重点: 其实不需要修改驱动配置, 只需要在驱动中选择对应驱动,比如: 1219[x]-LM,x标识很多版本,选择一个低一点的就可以了. …

MySQL - explain 执行计划详解

explain显示了MySQL如何使用索引来处理select语句以及连接表&#xff0c;可以帮助选择更好的索引和写出更优化的查询语句。 explain 查询结果如下&#xff1a; 字段说明&#xff1a; 列名说明id id列的编号是select的序列号&#xff0c;有几个select就有几个id&#xff0c;并…

IPEmotion的NVH噪声测试模块——坎贝尔图

德国IPETRONIK的IPEmotion软件除了可以对之前介绍的热管理试验及热管理台架试验、电性能试验和道路试验等各种进行基本的温度、模拟量和数字信号的采集分析外&#xff0c;无论专业版、开发版还是分析版均支持噪声分析模块。该模块支持噪声数据离线后处理&#xff0c;包括Campbe…

如何通过大数据赋能产业园区高质量发展

2022年年底&#xff0c;中共中央、国务院印发了《关于构建数据基础制度更好发挥数据要素作用的意见》(以下简称《数据二十条》)&#xff0c;以《数据二十条》出台为标志&#xff0c;我国数字经济发展从技术引领进入到数据驱动的新阶段&#xff0c;加快构建数据基础制度&#xf…

LINUX提权之第三方服务提权篇

前言 上一篇文章讲了一下环境变量提权不知道大家学习的怎么样了&#xff0c;今天给大家带来新的提权知识——“第三方服务提权”&#xff0c;本文会深入浅出讲解一下第三方服务提权的原理以及例子。 第三方服务 所谓的第三方服务可以大致理解为系统中安装的软件&#xff08;…

机器人中的数值优化|【二】最速下降法,可行牛顿法的python实现,以Rosenbrock function为例

机器人中的数值优化|【二】最优化方法&#xff1a;最速下降法&#xff0c;可行牛顿法的python实现&#xff0c;以Rosenbrock function为例 在上一节中提到了我们详细探讨了数值优化/最优化理论中的基本概念和性质&#xff0c;现在开始使用python对算法进行实现。上一节链接&am…

CVE-2021-25296 复现

# 漏洞描述 名称&#xff1a;Apache OFBiz rmi反序列化漏洞 cve编号&#xff1a;cve-2021-25296 危害&#xff1a;未授权远程命令执行 影响版本&#xff1a;Apache OFBiz < 17.12.06 OFBiz是一个非常著名的电子商务平台&#xff0c;是一个非常著名的开源项目&#xff0…

Python识别屏幕题目并模拟做题

前言 马上就要过年了&#xff0c;有许多小伙伴们本本还没拿到&#xff0c;还在苦苦刷题&#xff0c;一直及格不了&#xff0c;现在&#xff0c;我们用Python模拟做题&#xff0c;看看效果。 环境使用 python 3.9pycharm 模块使用 requestsreselenium谷歌驱动 import reimpor…

动态规划|474. 一和零

题目看上去很唬人&#xff0c;但是恰恰是这样说明该题设计的目的很强&#xff0c;指向dp的01背包&#xff0c;就是为了考01背包设计的。 像极了中学时代的那种看上去花里胡哨&#xff0c;实质上是根据考点设计出题的题目。&#xff08;这种题看破出题意图&#xff0c;往往都很简…

电脑是自动获取ip,VMware安装linux时候,设置固定ip并且能访问外网

首先虚拟机网络模式是NAT模式。设置主机名和打开网络&#xff0c;也可以不设置主机名&#xff1a;安装好后&#xff0c;设置linux的ip地址。执行vi /etc/sysconfig/network-scripts/ifcfg-ens33&#xff0c;修改里面的ip配置&#xff1a;注意IP的范围。查看ip的范围的方法如下图…

Day 5 Spring的后处理器

1 Spring后处理器Spring的后处理器是Spring对外开发的重要扩展点&#xff0c;允许我们介入到整个Bean实例化流程中来&#xff0c;以达到动态注册BeanDefinition&#xff0c;动态修改BeanDefinition&#xff0c;以及动态修改Bean的作用。BeanFactoryPostProcessor: Bean工厂后处…

基于蜜蜂算法求解电力系统经济调度(Matlab代码实现)

目录 1 蜜蜂优化算法 1.1 蜂群觅食机制 1.2 蜜蜂算法 1.3 流程 2 经济调度 3 运行结果 4 参考文献 5 Matlab代码实现 1 蜜蜂优化算法 蜜蜂算法( Bees Algorithm&#xff0c;BA) 由英国学者 AfshinGhanbarzadeh 和他的研究小组于 2005 年提出。该算法是一种有别于蚁群…

学习使用php获取数组最大值并返回对应键名max和array_search函数,最后一个元素的值使用end函数

在php中&#xff0c;可以使用max函数和array_search函数获得数组的最大值&#xff0c;同时获得最大值对应的键名解决方案打印结果解决方案 使用max函数获得数组的最大值&#xff0c;并使用array_search函数找到最大值对应的键名&#xff0c;键名保存在$key变量中。 end() 函数…

android架构拆分方案

编译拆https://blog.csdn.net/dongyi1988/article/details/128629011结构拆https://blog.csdn.net/dongyi1988/article/details/128633808一、背景android设备已经遍及各行各业&#xff0c;手机整个项目阶段包括需求沟通&#xff0c;硬件设计打板&#xff0c;研发联调&#xff…