Mybatis的mapper.xml文件详解

Mybatis的mapper.xml文件详解


1、#{}和${}的区别:

#{}表示一个占位符号,#{}接收输入参数,类型可以是简单类型,pojo、hashmap。
如果接收简单类型,#{}中可以写成value或其它名称。
#{}接收pojo对象值,通过OGNL读取对象中的属性值,通过属性.属性.属性...的方式获取对象属性值。

${}表示一个拼接符号,会引用sql注入,所以不建议使用${}。
${}接收输入参数,类型可以是简单类型,pojo、hashmap。
如果接收简单类型,${}中只能写成value。
${}接收pojo对象值,通过OGNL读取对象中的属性值,通过属性.属性.属性...的方式获取对象属性值。

2、selectOne和selectList的区别:
selectOne表示查询出一条记录进行映射。
如果使用selectOne可以实现使用selectList也可以实现(list中只有一个对象)。

selectList表示查询出一个列表(多条记录)进行映射。如果使用selectList查询多条记录,不能使用selectOne。
如果使用selectOne报错:
org.apache.ibatis.exceptions.TooManyResultsException:
Expected one result (or null) to be returned by selectOne(), but found: 4

3、在映射文件中通过parameterType指定输入参数的类型。

4、在映射文件中通过resultType指定输出结果的类型。


5、resultType:

使用resultType实现较为简单,如果pojo中没有包括查询出来的列名,

需要增加列名对应的属性,即可完成映射。

如果没有查询结果的特殊要求建议使用resultType。


6、resultMap:

需要单独定义resultMap,实现有点麻烦,如果对查询结果有特殊的要求,

使用resultMap可以完成将关联查询映射pojo的属性中。

resultMap可以实现延迟加载,resultType无法实现延迟加载。


6.1、resultMap:

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

association:

作用:将关联查询信息映射到一个pojo对象中。

场合:为了方便查询关联信息可以使用association将关联订单信息映射为用户对象的pojo属性中,

比如:查询订单及关联用户信息。

使用resultType无法将查询结果映射到pojo对象的pojo属性中,根据对结果集查询遍历的需要选择使用resultType还是resultMap


collection:

作用:将关联查询信息映射到一个list集合中。

场合:为了方便查询遍历关联信息可以使用collection将关联信息映射到list集合中,

比如:查询用户权限范围模块及模块下的菜单,

可使用collection将模块映射到模块list中,将菜单列表映射到模块对象的菜单list属性中,

这样的作的目的也是方便对查询结果集进行遍历查询。如果使用resultType无法将查询结果映射到list集合中。



Mybatis入门例子(http://blog.youkuaiyun.com/javawebrookie/article/details/52654526)

mybatis官网(http://www.mybatis.org/mybatis-3/zh/index.html)




如何使用apifox打包测试用例生成测试套件自动化执行 使用apifox打包测试用例生成测试套件自动化执行 阅读详情

相关推荐

PyWxDump实战:解密微信PC端本地数据库,实现聊天记录备份与分析

数据加密是保护敏感信息(如聊天记录)的核心技术,它通过特定算法将明文转换为密文,确保数据在存储和传输过程中的机密性。SQLCipher作为SQLite的加密扩展,采用AES-256算法对数据库文件进行页级加密,广泛应用于移动端和桌面端应用的数据保护。其技术价值在于,在保障用户隐私的前提下,为合规的数据备份、归档与分析提供了底层支持。在数据恢复、司法取证或合规审计等场景中,获取并解析此类加密数据是关键步骤。PyWxDump正是针对微信PC端本地SQLCipher加密数据库设计的工具,它通过逆向工程分析内存结构

451

WEB应用程序开发之Mybatis框架--Dao层 Mapper接口讲解

这里写目录标题Mybatis-Dao 层 Mapper 接口Mybatis 日志参数传递简化代码测试需要使用的jar包推荐插件 Mybatis-Dao 层 Mapper 接口 Mapper 接口开发方法只需要程序员编写 Mapper 接口(相当于 Dao 接口),由 Mybatis 框架根据接口定义创建接口的动态代理对象. 使用 session.getMapper(接口.class);获得代理对象Mapper 接口开发需要遵循以下规范: 1、 Mapper.xml 文件中的 namespace 与 mapp

qq_51352148的博客 2254

ArcGIS新手必看:5分钟搞定等高线转DEM栅格(附完整操作截图)

本文详细介绍了在ArcGIS中将等高线转换为DEM栅格的完整流程,包括CAD数据预处理、TIN转栅格和直接插值法两种核心方法,以及常见问题排查与优化技巧。通过实战案例和操作截图,帮助GIS新手快速掌握这一测绘数据处理的核心技能,提升地形分析和三维可视化效率。

dapp9builder的博客 287

mapperXML映射文件

mapperXML映射文件 作用:主要对数据库进行增删查改,可以通过读取映射文件调用相应的方法,获取sqlSession工厂对象 应用:映射文件是mybatis的核心配置文件之一,被解析后封装在MappedStatement里 Mapper映射文件是一个xml格式文件,必须遵循相应的dtd约束,它以mapper为根节点,包含9个元素,分别为 select 查询...

weixin_43468771的博客 924

AI大模型学习(13)小白也能学会的10分钟豆包大模型的python教程1

豆包AI大模型API是字节跳动推出的智能对话接口服务,开发者可以通过简单的HTTP请求调用强大的AI能力,实现智能问答、内容生成等功能。

isoft888的专栏,致力于C#/python分享物联网、大数据,神经网络的等领域,欢迎讨论交流! 1003

手把手教你校准垂起固定翼(VTOL)遥控器与电调:从零到飞的完整流程

本文详细介绍了垂起固定翼(VTOL)遥控器与电调的校准流程,从基础认知到飞行前检查,涵盖遥控器通道配置、电调校准、舵机方向调整等关键步骤。通过图文并茂的指导,帮助无人机爱好者安全完成VTOL调试,确保首飞成功。特别强调多旋翼模式、过渡模式和固定翼模式的设置要点,适合新手和进阶用户参考。

jenkins8butler的博客 361

mapper.xml的简介

mapper.xml文件代替了我们的dao层的实现类,它与接口实现绑定,我们把sql语句写在代码中就是硬编码,不利于后期的修改维护,但是mapp.xml解决了这一问题,把SQL语句提取出来下面我们先看一下常用的标签 <mapper namespace="cn.mapper.ClassMapper"> 这是关键标签,namespace属性必须要写,还要写对,它的值是对应接口的全路径,这是一个小技巧,

suwenLove的博客 2006

C#中使用OpenCV的常用函数

c# opencv 常见操作

大黄鸭在发光的专栏 1080

Mybatis源码-XXXmapper.xml中的resultMap标签解析过程

Mybatis源码-XXXmapper.xml中的resultMap标签解析过程 前提:之前讲过Spring在解析applicationcontext.xml会将该配置文件中所有的bean标签注册成BeanDefinition,具体的注册流程这里就不再重复了,还讲...

QiuRiMangCao 1497

Linux环境下离线升级GCC-9.4.0的完整实践指南

本文详细介绍了在Linux环境下离线升级GCC-9.4.0的完整实践指南,包括准备工作、依赖库安装、编译配置及常见问题解决。特别适用于企业内网或安全要求严格的服务器环境,帮助开发者高效完成GCC离线升级,提升编译性能并支持现代编程语言特性。

weixin_29288313的博客 673

YOLOv5改进 | 注意力篇 | iRMB倒置残差块注意力机制(轻量化注意力机制,附二次创新)

本文给家大家带来的改进机制是iRMB,其是在论文Rethinking Mobile Block for Efficient Attention-based Models种提出,论文提出了一个新的主干网络EMO(后面我也会教大家如何使用该主干,本文先教大家使用该文中提出的注意力机制)。其主要思想是将轻量级的CNN架构与基于注意力的模型结构相结合(有点类似ACmix)我将iRMB和C2f结合,然后也将其用在了检测头种进行尝试三种结果进行对比,针对的作用也不相同,但是无论那种实验均有一定涨点效果。

Snu77的博客 2571

Mybatis使用示例

Mybatis使用示例 AdminMapper.xml <!DOCTYPE mapper PUBLIC "-//ibatis.apache.org//DTD Mapper 3.0//EN" "http://ibatis.apache.org/dtd/ibatis-3-mapper.dtd"> <!-- AdminMapper.xml 中的namespace 与 AdminM

龙腾四海365的专栏 429

addr2line解析不出来行号的解决方式(汇编解析高阶版)

摘要:本文针对AEC crash问题中addr2line无法解析行号的情况,通过llvm-addr2line和反汇编分析,定位到CamX::AECBEStats17::AdjustROIParams函数中的乘法溢出问题。关键发现包括: 常规addr2line只能解析到函数名但无具体行号 llvm-addr2line解析出多个可能溢出点(行196/204/211/218/270/271) 反汇编显示6个条件分支跳转到溢出处理函数 源码分析确认这些位置均存在乘法运算 最终通过汇编级调试工具成功定位UBsan报告

170

MyBatis Mapper XML文件详解

MyBatis Mapper XML文件详解首先需要澄清几个概念: namespace 就是Mapper XML对应的Java接口名. 联合查询: 也就是多表的各种join查询 关联映射: 也就是嵌套映射, 用在一个POJO中包含其他POJO的情况 Mapper XML顶级配置元素 cache 启用本xml对应的namespace的二级缓存 cache-ref 共享指定namespace的二级缓存

congyh的专栏 1万+

jdk-8u144-linux-x64.tar.gz.

该资源为搭建Linux系统Java环境用,资源的后缀为tar.gz格式的压缩包

迈瑞BS系列全自动生化分析仪LIS协议接口手册(内含HL7和ASTM)

迈瑞BS系列全自动生化分析仪LIS协议接口手册,内含HL7和ASTM)

Mybatis的mapper.xml配置文件——详解

&amp;amp;lt;?xml version=&amp;quot;1.0&amp;quot; encoding=&amp;quot;UTF-8&amp;quot; ?&amp;amp;gt; select * from user where id = #{id} select * from orders

qq_42780864的博客 4万+

OV9734 DATASHEET,完整规格书

OV9734完整规格书,包括电气参数,尺寸规格,寄存器配置表等

springboot整合mybatis,对于mapper文件扫描,和xml扫描详解

springboot整合mybatis,对于mapper文件扫描,和xml扫描详解 使用idea创建springboot项目(这里不做主要讲解) 1.准备连接数据库(用自己的配置:192.168.10.* 3306 xl root 123456 2.导数据库相关包: <dependency> <groupId>org.myba...

qq_30633867的博客 5565

android 蓝牙通讯demo

android 下蓝牙通讯demo,实现了发现蓝牙,使能蓝牙,通过蓝牙发送消息。

Mybatis 中 Mapper XML文件详解

MyBatis 真正的力量是在映射语句中。这里是奇迹发生的地方。对于所有的力量,SQL 映射的 XML 文件是相当的简单。当然如果你将它们和对等功能的 JDBC 代码来比较,你会发现映射文件节省了大约 95%的代码量。MyBatis 的构建就是聚焦于 SQL 的,使其远离于普通的方式。SQL 映射文件有很少的几个顶级元素(按照它们应该被定义的顺序):cache – 配置给定命名空间的缓存。cache

俊逸豪杰的小天地 985

5.MyBatis学习之Mapper XML文件详解

5.1 CRUD 标签 5.1.1 select select --- 书写查询sql语句 select -- 几个属性说明 id属性:当前名称空间下的statement的唯一标识,必须,要求:id和mapper接口中的方法的名称一致; resultType属性:将结果集映射为java的对象类型,必须(和resultMap 二选一) parameterType属性:传入参数类型,可以省略; 标签内部:具体的sql语句 5.1.2 insert insert -- 书...

Mr.junjun的博客 830

Mybatis映射文件详解-mapper.xml文件

Mybatis是一个Java持久层框架,它提供了一种简单易用的方式来访问和操作数据库。在Mybatis中,映射文件(Mapper XML)起到了至关重要的作用,它们定义了SQL语句与Java方法之间的映射关系。

是程序喵呀 2828

MyBatis映射文件Mapper.xml详解

映射文件是 MyBatis 框架中十分重要的文件 可以说, MyBatis 框架的强大之处就体现在映射文件的编写上。在映射文件中,<mapper>元素是映射文件的根元素,其他元素都是它的子元素。 Select元素 <select>元素用来映射查询语句,它可以帮助我们从数据库中读取出数据。如下代码所示: <select id="findCustomerById" pa...

共勉 7209

Mybatis的mapper.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"> <!-- namespace:填写映射当前的Mapper接口,所有的增删...

这里记录着我一点一滴的进步 1127

MyBatis Mapper XML 文件 的学习详解

[size=medium]Mapper.xml文件示例[/size] [code="java"] user_id, username, email, password, tuijian_userid, paypassword, logintime ...

轻装上阵 212

MyBatis之Mapper XML 文件详解(一)

MyBatis 的真正强大在于它的映射语句,也是它的魔力所在。由于它的异常强大,映射器的 XML 文件就显得相对简单。如果拿它跟具有相同功能的 JDBC 代码进行对比,你会立即发现省掉了将近 95% 的代码。MyBatis 就是针对 SQL 构建的,并且比普通的方法做的更好。SQL 映射文件有很少的几个顶级元素(按照它们应该被定义的顺序):cache – 给定命名空间的缓存配置。cache-ref

qiangcuo6087的博客 1216

【2】Mybatis核心配置文件mybatis-config.xml、mapper.xml详解

4、配置解析 1、核心配置文件 mybatis-config.xml 系统核心配置文件 MyBatis 的配置文件包含了会深深影响 MyBatis 行为的设置和属性信息。 能配置的内容如下: configuration(配置) properties(属性) settings(设置) typeAliases(类型别名) typeHandlers(类型处理器) objectFactory(对象工厂) plugins(插件) environments(环境配置) environment(环境变量) t

Kuber 1635

MyBatis之Mapper XML 文件详解(一)

MyBatis 的真正强大在于它的映射语句,也是它的魔力所在。由于它的异常强大,映射器的 XML 文件就显得相对简单。如果拿它跟具有相同功能的 JDBC 代码进行对比,你会立即发现省掉了将近 95% 的代码。MyBatis 就是针对 SQL 构建的,并且比普通的方法做的更好。SQL 映射文件有很少的几个顶级元素(按照它们应该被定义的顺序):cache – 给定命名空间的缓存配置。 cache-re...

IT哈哈的博客 448

Mybatis 3.1中 Mapper XML 文件 的学习详解

MyBatis 真正的力量是在映射语句中。这里是奇迹发生的地方。对于所有的力量,SQL 映射的 XML 文件是相当的简单。当然如果你将它们和对等功能的 JDBC 代码来比较,你会发现映射文件节省了大约 95%的代码量。MyBatis 的构建就是聚焦于 SQL 的,使其远离于普通的方式。 SQL 映射文件有很少的几个顶级元素(按照它们应该被定义的顺序): cache – 配置给定命名

zhll3377的专栏 12万+
上一篇: 读记-tomcat与java web开发技术详解
下一篇: Mybatis的mapper.xml文件详解
AndyChen9988
博客等级 码龄11年 276粉丝 89原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值