MyBatis XML映射文件

【Mybatis】XML映射文件 xml和dtd 部分是必须填写且不需要配置的部分每次使用时,只需要将这部分复制到文件顶部即可。mapper 元素是整个映射文件的容器,所有的SQL映射都包含在这个元素中,mapper本身有一个参数namespace,即命名空间这个命名空间就是文件所对应的接口文件的Java类只有当这个命名空间被配置时,才可以直接通过访问Java接口的方法实现SOL调用。映射器是MyBatis最复杂且最重要的组件它由一个接口加上XML文件(或者注解)组成。 阅读详情

MyBatis XML映射文件

  Mapper接口开发方法只需要程序员编写Mapper接口,由Mybatis框架根据接口定义创建接口的动态代理对象。
Mapper接口开发需要遵循以下规范:

  1. Mapper.xml文件中的namespace与mapper接口的类路径相同。
  2. Mapper接口方法名和Mapper.xml中定义的每个statement的id相同
  3. Mapper接口方法的输入参数类型和mapper.xml中定义的每个sql 的parameterType的类型相同
  4. Mapper接口方法的输出参数类型和mapper.xml中定义的每个sql的resultType的类型相同

一、xml文件样式

<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE mapper
        PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
        "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="com.xx.mapper.xxxMapper">
、、、 、、、 、、、 、、、
</mapper>
  • Mapper接口对应的statement需要放到<mapper></mapper>标签之中
  • namespace为命名空间,用于隔离sql语句,与mapper接口的类路径相同

二、ResultMap

  resultType可以指定pojo将查询结果映射为pojo,但需要pojo的属性名和sql查询的列名一致方可映射成功。如果sql查询字段名和pojo的属性名不一致,可以通过resultMap将字段名和属性名作一个对应关系,resultMap实质上还需要将查询结果映射到pojo对象中。resultMap可以实现将查询结果映射为复杂类型的pojo,比如在查询结果映射对象中包括pojo和list实现一对一查询和一对多查询。

<resultMap type="com.xx.domain.Order" id="orderMap" autoMapping="" extends="">
<!-- 订单信息查询结果,和用户和订单明细关联 -->
	<id property="id" column="id"></id>
	<result property="userId" column="user_id"></result>
	<result property="number" column="number"></result>
	... ... ... ...
	<association property="user" javaType="com.xx.domain.User">
	<!-- order和user 一对一对应 需要在Order类中添加User对象 -->
	<!-- 这里的id为user的id,如果写上表示给user的id属性赋值 -->
		<id property="id" column="user_id"/>
		<result property="username" column="username"/>
		<result property="password" column="password"/>
	</association>
	<collection property="orderDetails" ofType="com.xx.domian.OrderDetail">
	<!-- order和orderDetail 一对多对应 需要在Order类中添加List<OrderDetail> -->
	<!-- 一对多是多对多的特例 -->
		<id property="id" column="orderdetail_id"/>
		<result property="items_id" column="items_id"/>
		<result property="items_num" column="items_num"/>
	</collection>
</resultMap>

<resultMap> 标签

  使用association和collection完成一对一和一对多高级映射(对结果有特殊的映射要求)。

  • id属性:resultMap标签的标识。
  • type属性:返回值的全限定类名,或类型别名。
  • autoMapping属性:值范围true(默认值)|false,,设置是否启动自动映射功能,自动映射功能就是自动查找与字段名小写同名的属性名,并调用setter方法。而设置为false后,则需要在resultMap内明确注明映射关系才会调用对应的setter方法。
  • extends属性:填写其他resultMap的id,可以继承其中的映射关系

子标签

  • <id></id>标签,用于设置主键字段与领域模型属性的映射关系
  • <result></result>标签,用于设置普通字段与领域模型属性的映射关系
  • <association></association>标签,将关联查询信息映射到一个pojo对象中,

使用场景:
为了方便查询关联信息可以使用association将关联订单信息映射为用户对象的pojo属性中,比如:查询订单及关联用户信息。
使用resultType无法将查询结果映射到pojo对象的pojo属性中,根据对结果集查询遍历的需要选择使用resultType还是resultMap。

  • <collection></collection>标签,将关联查询信息映射到一个list集合中。

使用场景:
为了方便查询遍历关联信息可以使用collection将关联信息映射到list集合中,比如:查询用户权限范围模块及模块下的菜单,可使用collection将模块映射到模块list中,将菜单列表映射到模块对象的菜单list属性中,这样的作的目的也是方便对查询结果集进行遍历查询。
如果使用resultType无法将查询结果映射到list集合中。

三、ResultType

  简单输出类型也可以使用resultType,输出pojo对象和输出pojo列表在sql中定义的resultType是一样的。

返回单个pojo对象要保证sql查询出来的结果集为单条,内部使用session.selectOne方法调用,mapper接口使用pojo对象作为方法返回值。
返回pojo列表表示查询出来的结果集可能为多条,内部使用session.selectList方法,mapper接口使用List对象作为方法返回值。

四、TypeAliases

Mybatis支持别名:

别名映射的类型
_bytebyte
_longlong
_shortshort
_intint
_integerint
_doubledouble
_floatfloat
_booleanboolean
stringString
byteByte
longLong
shortShort
intInteger
integerInteger
doubleDouble
floatFloat
booleanBoolean
dateDate
decimalBigDecimal
bigdecimalBigDecimal

自定义别名

<typeAliases>
	<!-- 单个别名定义 -->
	<typeAlias alias="user" type="com.xx.domain.User"/>
	<!-- 批量别名定义,扫描整个包下的类,别名为类名(首字母大写或小写都可以) -->
	<package name="com.xx.domain"/>
	<package name="其它包"/>
</typeAliases>
雨雾天YOLOv8检测拉胯?暗通道去雾+上下文注意力双优化,mAP从58%飙到79%,暴雨也能看清车牌 室外交通监控:高速、省道的雨雾天检测,重点解决小车、货车漏检;车载ADAS系统:雨天行车时的前方车辆、行人识别,需实时性(<40ms);隧道出入口:明暗交界+雾天的复杂场景,暗通道能平衡亮度。 阅读详情

相关推荐

Isaac Sim 车辆动力学:从参数调优到户外仿真的挑战与实战

本文深入探讨了Isaac Sim在车辆动力学仿真中的应用,从参数调优到户外场景模拟的实战经验。详细解析了悬架系统、轮胎物理模型等核心参数的设置技巧,并分享了应对户外仿真挑战的实用方案。通过Vehicle Wizard高级使用和传感器配置,帮助开发者高效完成车辆仿真与算法开发。

weixin_29192211的博客 404

整合Mybatis

预编译SQL有两个优势:性能更高更安全(防止SQL注入)性能更高:预编译SQL,编译一次之后会将编译后的SQL语句缓存起来,后面再次执行这条语句时,不会再次编译。(只是输入的参数不同)更安全(防止SQL注入):将敏感字进行转义,保障SQL的安全性。

wawel的博客 556

硬全桥副边钳位管Vds电压凸台揭秘——寄生参数引发的导通异常

本文深入分析了硬全桥副边钳位管Vds电压凸台现象,揭示了寄生参数如何引发导通异常。通过波形分析和工程实践,详细解析了走线电感的蓄能效应和体二极管的接力作用,并提供了PCB布局优化、元件选型和驱动电路调整等解决方案,帮助工程师有效应对这一常见问题。

weixin_30825581的博客 430

MyBatis-XML映射文件详解

XML映射文件详解

m0_71212413的博客 4130

电源新手别怕!手把手教你搞定Buck电路的环路补偿(附Type II/III补偿器参数计算)

本文为电源设计新手详细解析Buck电路环路补偿技术,重点介绍Type II和Type III补偿器的参数计算与设计方法。通过实例演示和实用技巧,帮助工程师快速掌握环路补偿原理,解决电源振荡、响应慢等问题,提升电路稳定性与性能。

weixin_30607029的博客 623

vivado2020.1使用vitis生成QSPI启动文件报错

在使用vivado2020.1使用vitis,生成QSPI启动文件时会报错,data2mem命令无法识别,这是因为data2mem是xilinx7series芯片的命令,当使用ultrascale/ultrascale+芯片时则需要使用updatemem命令,这或许是vitis的一个bug吧,明明选择的是ultrascale的芯片,却一直调用打她mem命令,挺麻烦的,需要手动执行,在XSCT console窗口执行的命令如下: updatemem -force -meminfo \ F:/xc7z35t/x

qq_32134427的博客 2336

MyBatis xml配置文件详解

一、MyBatis 配置文件基本结构 在使用mybatis框架时,首先导入其对应的jar包,并进行相应的配置,所以得对配置文件的每个参数都得了解。一个完全的mybatis配置文件结构如下: <?xml version="1.0" encoding="UTF-8" ?> <!DOCTYPE configuration PUBLIC "-//mybatis.org//DTD Config 3.0//EN" "http://mybatis.org/dtd/mybatis-3-config.

学Java,找哪吒 2万+

无线图像传输新突破:深度JSCC算法在低带宽环境下的性能实测

本文深入探讨了基于深度学习的信源信道联合编码(JSCC)算法在低带宽无线图像传输中的突破性表现。通过实测数据对比,深度JSCC在低信噪比环境下展现出卓越的鲁棒性,有效对抗传统方案的“悬崖效应”,实现图像质量的平滑下降,为远程医疗、工业巡检等严苛场景提供了新的解决方案。

weixin_29090089的博客 508

MyBatis的XML映射配置文件

2.3 MybatisX的使用。2.1 XML配置文件规范。2.2 XML配置文件实现。

weixin_53622554的博客 4510

正负数据如何归一化_生信干货 | LC-MS代谢组学QI软件下机数据代谢物筛选和归一化如何做?...

上海·2019第一届多层组学前言技术发展华东区客户研讨会倒计时1天LC-MS非靶向代谢组学数据下机啦~~拿到一堆数据怎么办?不会高端代码,也不会自己写脚本,我怎么处理数据?​本期小编带来了LC-MS非靶向代谢组学下机数据处理实用干货,包括:下机定性结果表格的解析、代谢物筛选如何做?以及定量数据如何做归一化?实用干货,赶紧来抢~~话不多说,赶紧来学习吧~~非靶向LC-MS代谢组学的分析流程LC-MS...

weixin_36441329的博客 2984

王炸联动!OpenClaw 对接微信 / 企业微信保姆级教程,AI 办公效率翻倍

《OpenClaw对接微信/企业微信全指南》摘要:本文提供开源AI智能体OpenClaw与微信生态的完整对接教程。核心内容包括企业微信配置四步法(获取凭证、修改配置、重启服务、验证对接)和个人微信通过企业微信插件的一键打通方案。对接后支持微信/企微发指令AI秒执行、群聊机器人、文件同步等高效办公场景,并附常见问题排查代码。教程强调配置简单(全程可复制代码)、适用广泛(个人/团队场景),实现沟通与AI协作的无缝衔接。文末包含端口放行等实用命令,助力用户快速实现移动端AI办公。(149字)

2501_93651177的博客 584

Mybatis基础操作&XML映射文件

数据库表和springboot工程在课程资料中都有提供注意,entrydate是用的jdk1.8中的LocalDate类型,createTime用的是jdk1.8中的LocalDateTime类型。

勇敢牛牛 1153

实战篇| app爬虫不用真机

之前写过一篇基于真机app爬虫《App爬虫实战篇-以华为真机手机爬取集换社的app为例》,如果大家有用真机爬虫的经历,会深刻认识到真的不方便,一是自己的手机,经常会被电话、微信等打断,二是闲置手机,面对小批量数据还能勉强,大批量爬虫,会导致成本指数级上升,并且控制起来相对麻烦。以下就是常见的模拟器。emulator -avd my_avd -no-snapshot-save # 启动时不保存 snapshot。emulator -avd my_avd -wipe-data # 清除数据(恢复到出厂)

youbingchen的博客 597

Mybatis XML映射文件

xml映射文件中不止select这一条sql语句可以用,这里我就只使用了select标签去查询,大家也可以使用其他的标签来去完成其余的sql语句列如(delecte、insert、update标签…resultType:此属性是select标签的属性,需要给他返回结果的类型,这里可以写我们创建表的实体类。namespace:此属性是mapper标签的属性,需要给他指定Mapper映射接口的地址。id:此属性是select标签的属性,需要给他指定的一个方法(在上面我们所设定的接口方法)

weixin_68576312的博客 1193

jre9下载 jdk9

(Java SE Runtime Environment 9.0) 9.0u175 官方最新版 【x86|x64】

怀旧版电脑GBC模拟器

再现原版GBC掌机的界面,电脑运行连游戏界面都一样大小,很怀旧,很真实,(英文版)强烈推荐,很小的文件,很难才找到的。

MyBatis——XML映射文件

在MyBatis中,既可以通过注解的方式配置SQL语句,也可以通过XML映射文件的方式配置SQL语句。对于简单的SQL语句建议直接通过注解的方式配置SQL语句。

Aishangyuwen的博客 1097

Data-Structures-and-Algorithm-Analysis-in-Java.pdf

作者: Weiss, Mark A. 出版社: Addison Wesley Data Structures and Algorithm Analysis in Java is an “advanced algorithms” book that fits between traditional CS2 and Algorithms Analysis courses. In the old ACM Curriculum Guidelines, this course was known as CS7. This text is for readers who want to learn good programming and algorithm analysis skills simultaneously so that they can develop such programs with the maximum amo...

Mybatis-XML 映射文件

SQL注入(SQL Injection)是一种常见的网络攻击技术,攻击者通过在Web应用程序的输入字段中插入恶意SQL代码,来欺骗数据库服务器执行非授权的SQL命令。SQL注入攻击的原理是利用了应用程序安全漏洞,这些漏洞允许攻击者将SQL代码注入到原本的查询中。XML映射文件是MyBatis框架中的一个核心组件,它用于定义SQL语句与Java方法之间的映射关系。,MyBatis使用这个namespace来将XML映射文件中的操作与Java接口中的方法关联起来。属性用于指定映射语句的输入参数类型。

m0_70484213的博客 1402

8.MyBatis的XML映射文件

MyBatis配置SQL语句时,若是简单的增删改查可以直接使用注解的形式来配置会更加简洁,但是稍微复杂一点的SQL语句,Java注解不仅力不从心,还会让你本就复杂的SQL语句更加混乱不堪。因此,如果你需要做一些很复杂的操作,最好用XML来映射语句。

m0_60549679的博客 1387

Mybatis的Xml映射文件中,不同的Xml映射文件,id重复问题

namespace是一个 XML 映射文件的命名空间,它通常与 Mapper 接口的全限定名相对应。每个 XML 映射文件都有一个唯一的namespace,这个namespace用来隔离不同映射文件中的 SQL 语句,防止id冲突。的namespace是的namespace是在和中,尽管两者都可能有的语句,但由于它们位于不同的namespace下,因此不会冲突。在 MyBatis 的 XML 映射文件中,不同的namespace下的id可以重复。namespace。

Flying_Fish_roe的博客 1786

JAVA开发中 MyBatis XML 映射文件 的作用

它的作用是将 Java 方法与 SQL 语句关联起来,实现持久化操作(如查询、插入、更新和删除)。通过使用 XML 映射文件,开发者可以灵活地管理 SQL 语句,同时保持代码的清晰和可维护性。MyBatis 的 XML 映射文件在持久化操作中承担了非常重要的角色。)是 MyBatis 框架的重要组成部分,主要用于定义。可以将查询结果的字段与 Java 对象的属性映射。MyBatis 支持通过 #{}

weixin_64401027的博客 1668

JavaWeb——Mybatis-XML映射文件(概述、XML 映射文件的规范、XML 映射文件结构、MyBatis X 插件介绍)

XML 映射文件是 MyBatis 主要的 SQL 配置方式之一,用于存储 SQL 语句并将其与 Mapper 接口关联。安装 MyBatis X在 IDEA 中打开Plugins搜索MyBatis X点击Install并启用插件快速跳转功能在EmpMapper接口方法前的小鸟图标 🐦点击可跳转到对应的 SQL 语句在 XMLselect语句前点击小鸟图标,可跳转到对应的 Mapper 方法XML 映射文件的核心要点文件命名一致namespace需匹配全类名SQLid需匹配方法名。

li13437542099的博客 1779

MyBatis映射文件UserMapper.xml

XML映射文件 MyBatis 的真正强大在于它的映射语句,这是它的魔力所在。由于它的异常强大,映射器的 XML 文件就显得相对简单。如果拿它跟具有相同功能的 JDBC 代码进行对比,你会立即发现省掉了将近 95% 的代码。MyBatis 为聚焦于 SQL 而构建,以尽可能地为你减少麻烦。 SQL 映射文件只有很少的几个顶级元素(按照应被定义的顺序列出): cache – 对给定命名空间的缓存...

qq_44700535的博客 4333

MyBatis XML 映射文件使用详解

使用这种方式的时候我们需要在配置文件中配置 mybatis xml 的文件路径:这里需要注意的是:resources文件夹之下的这个mapper文件夹的名字要和配置文件中classpath后端mapper的名字要保持一致。同时以上述的配置信息为例,mapper文件夹之下的xml文件一定是要以Mapper为结尾。

wxy963的博客 455

Mybatis 的 Xml 映射文件和 Mybatis 内部数据结构之间的映射关系

MyBatis 的 XML 映射文件和内部数据结构之间的映射关系是框架运作的核心之一。XML 文件中定义的各种 SQL 语句、结果映射、参数映射等配置信息会被 MyBatis 解析成相应的内部数据结构,如ResultMapSqlSource等。这些内部数据结构帮助 MyBatis 在运行时高效地执行 SQL 语句并将结果映射到 Java 对象中。

Flying_Fish_roe的博客 1175

MyBatis的映射文件与XML配置

1.背景介绍 MyBatis是一款非常受欢迎的Java持久层框架,它可以简化数据库操作,提高开发效率。MyBatis的核心功能是将SQL映射到Java对象,这样我们可以更方便地操作数据库。在MyBatis中,映射文件是用于定义数据库表和Java对象之间关系的XML文件。在本文中,我们将深入了解MyBatis的映射文件和XML配置,并探讨其核心概念、算法原理、最佳实践、实际应用场景和工具推荐。 ...

AI天才研究院 1201

MyBatis的配置文件与XML映射文件

1.背景介绍 MyBatis是一款非常流行的Java持久层框架,它可以简化数据库操作,提高开发效率。MyBatis的核心组件是映射文件,这些文件用于定义如何映射Java对象和数据库表。在本文中,我们将深入探讨MyBatis的配置文件和XML映射文件,揭示其核心概念、算法原理、最佳实践以及实际应用场景。 1.背景介绍 MyBatis起源于iBATIS项目,是一款高性能、易用的Java持久层框架...

AI天才研究院 1200

Mybatis 的 Xml 映射文件中,不同的 Xml 映射文件,id 是否可以重复?

同一个映射文件内id必须唯一。不同的映射文件之间id可以重复,但namespace必须不同。

weixin_45422672的博客 461

【MyBatis】(3)xml 映射文件

前言 该篇文章为 xml 映射文件的笔记,主要讲 xml 映射文件(也就是xxxMapper.xml 文件)。 一、mapper(xml文件) MyBatis 的真正强大在于它的语句映射,这是它的魔力所在。由于它的异常强大,映射器的 XML 文件就显得相对简单。如果拿它跟具有相同功能的 JDBC 代码进行对比,你会立即发现省掉了将近 95% 的代码。MyBatis 致力于减少使用成本,让用户能更...

长生的梦呓 2757
上一篇: 通用权限认证要点记录
Code-Novice
博客等级 码龄4年 8粉丝 2原创
评论 1
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值