MyBatis_4 - MyBatis映射器(1)_select

MyBatis+MySQL本地自动生成映射类和XML文件 用于本地自动生成映射文件,节省开发者时间。 立即下载

注意:后面的代码修改,都是基于此篇文章中的demo进行修改的,大家可以根据这个Demo动手写写试试看...

MyBatis_3 - MyBatis第一个Demo


顺便我将下面Demo的代码直接上传了,不想写的,直接下载跑就行。

MyBatis_Select示例Demo


首先插一个和映射器没有关系的内容...

MyBatis 数据库事务

数据库事务 mybatis是交由SqlSession进行控制,我们可以通过提交(commit)或者回滚(rollback)

在大部分工作环境下,都会使用Spring框架进行控制,这个后面再说。

事务控制 如下图:



MyBatis映射器

 

映射器是MyBatis最强大的工具,也是我们使用MyBatis时使用最多的工具。

MyBatis是针对 映射器构造的SQL 构建的轻量级框架,并且通过配置生成对应JavaBean返回给调用者,而这些配置主要便是

映射器。


映射器的配置

元素名称

描述

备注

select

查询语句,最常用,最复杂的元素之一

可以自定义参数,返回结果集等。

insert

插入语句

执行后返回一个整数,代表插入的条数

update

更新语句

执行后返回一个整数,代表更新的条数

sql

允许定义一部分的SQL,然后再各个地方引用它

例如:一张表列名,可以一次定义,在多个SQL语句中使用。

resultMap

用来描述从数据库结果集中的加载对象,它是对复杂,最强大的元素

它将提供映射器的规则

cache

给定命名空间的缓存配置

-

cache-ref

其他命名空间缓存配置的引用

-


select元素

select元素的配置(列出常用的,其余的等要用再查资料吧)

元素

说明

备注

id

它和Mapper的命名空间组合起来是唯一的,提供给MyBatis调用

说简单点就是Mapper接口中的方法名 和 Mapper.xml 中的id 必须保持一致,不能出现重复。

①-------下面会有图例

如果命名空间和id组合起来不唯一,会抛出异常

parameterType

传入参数的类型;

你可以给出类全名,也可以给出类别名,使用别名必须是MyBatis内部定义或自定义的

 

基本数据类型:int , String , long , date(不知是sql.date 还是 util.date)

复杂数据类型:类 和 Map

 

如何获取呢?

基本数据类型:接口方法中的参数值#{传参}

复杂数据类型:#{属性名},map中则是#{key}

可以选择JavaBean,Map等复杂的参数类型传递给SQL

resultType

从这条语句中返回的期望类型的类的完全限定名或别名。

注意如果是集合情形,那应该是集合可以包含的类型,而不能是集合本身。

使用 resultType 或 resultMap,但不能同时使用

 

定义类的全路径,在允许自动匹配的情况下,结果集将通过JavaBean的规范映射;

或者定义为int,double,float等参数...

也可以使用别名,但是要符合别名规范,不能和resultMap同时使用。

它是我们常用的参数之一,比如我们总计总条数

就可以把它的值设为int

resultMap

外部 resultMap 的命名引用。

结果集的映射是 MyBatis 最强大的特性,对其有一个很好的理解的话,许多复杂映射的情形都能迎刃而解。

使用 resultMap 或 resultType,但不能同时使用

 

它是映射集的引用,将执行强大的映射功能,我们可以使用resultType或者resultMap其中的一个,resultMap可以给予我们自定义映射规则的机会

它是MyBatis最复杂的元素,可以配置映射规则,级联,typeHandler等

flushCache

它的作用是在调用SQL后,是否要求MyBatis清空之前查询的本地缓存和二级缓存

true/false,默认为false

useCache

启动二级缓存开关,是否要求MyBatis将此次结果缓存

true/false,默认为true

timeout

设置超时时间,超时之后抛出异常,秒

默认值为数据库厂商提供的JDBC驱动所设置的秒数

fetchSize

获取记录的总条数设定

默认值是数据库厂商提供的JDBC驱动所设的条数

①----如下图所示:

select之传递多个参数

之前的例子,我们都是传递一个参数,下面试试多个参数传递。

(仍旧使用之前的例子)

1. 使用Map传递参数

将Mapper中获取学生信息的接口方法的参数,修改为map

然后 修改映射的xml中,将getStudent的入参类型修改为map,并且修改sql语句

where 条件中参数的名字就是map中的key

  

这里要注意key对应....

 

查询结果

这个方式虽然简单易用,但是有一个弊端:这样设置的参数使用了Map,而Map需要key/value对应,由于业务关联性不强,

你需要深入到程序中看代码,造成可读性很差。

2. 使用注解方式传递参数(依旧使用之前的例子)

使用MyBatis参数注解:@Param来实现想要的功能。

首先将Mapper接口方法中方法传参修改为以下:

然后修改Mapper XML中传入的参数

注意和Mapper 接口方法传参中的名字保持一致哦...

最后修改方法调用

最后的查询结果

当我们将参数传递给后台的时候,通过@Param提供的名称,MyBatis就会知道#{student_id}代表studentName参数,参数的可读性提高,

但是这样会引起另一个麻烦,一条SQL中有10个参数需要查询,如果全部使用@Param方式,这样参数会十分复杂,我们换一种方式。


3. 使用JavaBean传递参数(依旧使用之前的例子)

   在参数过多的情况下,MyBatis允许组织一个JavaBean,通过简单的setter和getter方法设置参数,这样可以提高可读性。

  首先我们创建一个JavaBean(用来传递参数)

  

然后我们修改Mapper XML中传入的参数和参数类型

接着修改Mapper 接口方法中入参的参数类型

最后修改主调用方法

测试结果

以上,我们描述了三种传递多个参数的方式:


  • 使用Map : 因为Map导致业务可读性变差,后续扩展和维护会很困难,应尽量少用
  • 使用@Param : 这种方式收到参数个数的影响,当参数较多的时候,会给调用造成困难。
  • JavaBean : 当传参数量较多的时候,还是JavaBean好用。


老话说的好,针对不同业务需求,选用最合适的技术(方式)。

手把手教你设计MTBF加速寿命试验:从阿伦尼斯模型到卡方计算(含Excel模板) 本文详细介绍了如何设计MTBF加速寿命试验,从阿伦尼斯模型到卡方计算,帮助工程师在合理时间内获得准确的MTBF数据。通过工业电源模块的实例演示,涵盖活化能确定、温度应力设计、样本量计算及数据记录规范,并提供Excel模板实现自动化计算,显著提升测试效率。 阅读详情

相关推荐

visual studio 2017编译Triangle库遇到的问题和解决办法

这段时间因为一个项目需要使用到Triangle这个三角剖分工具,需要在windows环境下进行对源码编译,中间踩了很多坑,特此记录下。 1、下载 下载链接是下边这个,需要翻墙 http://www.cs.cmu.edu/~quake/triangle.html 2、编译。。超。。。级。。。麻。。。烦。。。 在ubutu下安装一切顺利,完全没遇到什么麻烦,但是换到windows下就麻烦不断...

csubai07的博客 2438

Mybatis常见面试题总结

Mybatis 是一款优秀的持久层框架(ORM框架),它支持自定义SQL存储过程以及高级映射。Mybatis 免除了几乎所有的 JDBC 代码以及设置参数和获取结果集的工作。Mybatis 可以通过简单的 XML 或注解来配置和映射原始类型、接口和 Java POJO(Plain Old Java Objects,普通老式 Java 对象)为数据库中的记录。

云原生Java Web领域技术博客 824

增程式永磁电机发电系统电压环二自由度控制器设计

本论文主要研究增程式永磁电机发电系统的电压环二自由度控制器设计。该系统采用二自由度控制策略,通过精确调节电压环和电流环,显著提高系统的动态响应性能和稳态稳定性。基于SVPWM(空间矢量脉宽调制)技术,本研究设计的电压环控制器能够在负载突变和外部扰动的情况下,快速恢复并保持电压稳定,从而满足增程式永磁电机发电系统对电压精度和稳定性的高要求。仿真分析表明,所设计的控制器在不同工况下展现出良好的电压稳定性、较短的响应时间和较低的稳态误差,能够有效抑制电压波动并提高系统的鲁棒性。实验结果表明,控制器在维持高效能和高

weixin_44553616的博客 897

四:映射器详解

映射器是MyBatis最强大的工具,也是我们使用MyBatis时用的最多的工具.MyBatis 是针对映射器构造的Sql构建的轻量级框架.并且通过配置生成对应的JavaBean返回给调用者.而这些配置主要便是映射器,在MyBatis中你可以根据情况定义动态SQL来满足不同场景的需要,因此比其他框架灵活的多.MyBatis 还支持自动绑定JavaBean,我们只要让SQL返回的字段名和JavaBean的属性名保持一致,便可以省掉这些繁琐的映射配置 映射器的主要元素. 一:select 元素. .

echohuangshihuxue的博客 2633

机器学习——笔记整理(原理、python代码)——反反复复,出精活!

回顾知识,检查自我,开拓新域。 机器学习1.监督学习 机器学习简介: 机器学习是实现人工智能的手段,其主要研究内容是如何利用数据或经验进行学习,改善具体算法的性能。 多领域交叉,涉及概率论、统计学,算法复杂度理论等多门学科 广泛应用于网络搜索、垃圾邮件过滤、推荐系统、广告投放、信用评价、欺诈检测、股票交易和医疗诊断等应用。 机器学习分类: 机器学习一般分为下面几种类别 监督学习 ( Supervised Learning) 无监督学习 ( Unsupervised Learning) 强化学习(

weixin_45666566的博客 6486

LLVM实战:如何用Clang+LLVM打造你的第一个C++编译器(附完整配置步骤)

本文详细介绍了如何使用Clang+LLVM构建C++编译器的完整配置步骤,从环境准备到编译流程剖析,再到调试与优化技巧。通过实战指南,帮助开发者深入理解LLVM编译器框架的工作原理,并掌握交叉编译与性能分析等高级功能。

sprite的博客 748

Mybatis映射文件之 Select 元素使用及详细解析

Mybatis映射文件之 Select 元素使用及详细解析

weixin_45538589的博客 5716

Vlan的封装模式和端口讲解(Access、Trunk、Hypbrid端口)

Vlan(Virtual Local Area Network)虚拟局域网,将一个物理的LAN在逻辑上划分为多个广播域,在交换机上实现广播域隔离(增强局域网的安全性、限制广播风暴、简化网络管理)Vlan通过将二层数据帧打上Vlan标签(打上Vlan标签也就是封装Vlan),正常情况下,不同Vlan Tag的数据包是无法二层直接互访的,以此来实现广播域的隔离可以理解为一个Vlan对应一个广播域,同一Vlan内的主机可以二层直接通信,不同Vlan间的主机无法二层直接通信。

m0_49864110的博客 5642

深入浅出MyBatis技术原理与实战-学习-源码解析-MyBatis 映射器(二)

xxx

黄裳博客 480

别再为域名备案发愁了!微信小程序后端调用,试试这个‘官方捷径’——云托管

本文介绍了微信小程序后端部署的新思路——利用微信云托管服务绕过域名备案难题。通过详细的环境准备、数据库配置、服务部署和小程序端调用方案,帮助开发者快速实现小程序与后端服务的无缝对接,大幅缩短上线周期并降低运维成本。

weixin_29243279的博客 674

使用GitLab限制开发者使用CI/CD的权限,三种方案

使用三种方案来限制开发人员的CI/CD权限。

知无涯 5096

mybatis-映射器-select

select元素是我们最常用也是功能最强大的sql语言。select元素帮助我们从数据库中读取出数据,组装数据给业务人员。执行select语句之前,我们需要定义参数,它可以是一个简单的参数类型,例如int,float,String,也可以是一个复杂的参数类型,例如JavaBean,Map等,这些都是mybatis接受的参数类型。执行sql后,mybatis也提供了强大的映射规则,甚至自动映射来帮助

wj903829182的专栏 2724

YOLOv12改进策略【Neck】| arXiv 2024 MAFPN:多分支辅助特征金字塔网络 | 通过双向辅助融合与异构卷积机制,解决传统PAFPN多尺度特征融合不充分与小目标检测不足问题

本文记录的是利用MAFPN颈部结构改进YOLOv12的目标检测网络模型。通过引入双向辅助融合机制优化特征处理流程,在自底向上路径利用 SAF 模块融合主干浅层特征与颈部输出,并保留浅层空间信息,为小目标检测提供更丰富细节;自顶向下路径通过 AAF 模块建立密集连接,聚合浅层高 / 低分辨率层、同级层及前层特征,均衡各层通道数后实现多向梯度信息交互,增强中 / 大目标特征表达。将其应用到中,解决传统特征金字塔在多尺度信息整合中的不足,提升多尺度目标检测的精度与特征表达的丰富性。Multi-Branch Aux

Limiiiing的博客 1256

MyBatis学习之映射器Mapper(接口映射器+xml映射文件)

Table of Contents 01 MyBatis映射器: 1.1 接口映射器+xml映射器 1.2 接口映射器+注解 02 接口映射器+xml映射器 方式 2.1 mybatis配置文件 引入映射器: 2.2 XML映射文件 的几个顶级元素: 2.2.1select元素 以及Select 元素的属性 2.2.2insert, update 和 delete元素 ...

LJW874362735的博客 1万+

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

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

老版QQ原生表情gif动态

这是老版的QQ表情,不过全是动态的的,Windows照片查看器是不会动的,可以右击用浏览器打开查看,再说一遍是老版的,只是分享给宁愿用老版也要动态的人。

互联网应用主流框架整合【MyBatis映射器基本元素】

MyBatis映射器基本元素详解(附源码)

一块大洋 9346

SAP B1中文培訓教材_SDK

公司内部培训资料,对开发工具 ,DIAPI, UIAPI,Add-ON有详细解说

Mybatis映射器

什么是MyBatis映射器? MyBatis框架包括两种类型的XML文件,一类是配置文件,即mybatis-config.xml,另外一类是映射文件,例如XXXMapper.xml等。在MyBatis的配置文件mybatis-config.xml包含了<mappers></mappers>节点,这里就是MyBatis映射器。 1、MyBatis映射器发展历史简介 映射器是MyBatis中最核心的组件之一,在MyBatis 3之前,只支持XML映射器,所有的SQL语句都必须在..

bobozai86的博客 1281

文档:亲测可用解决vnc灰屏,黑屏,鼠标大黑叉情况

主要解决vnc-viewer灰屏,黑屏,鼠标大黑叉等现象,详细见文档。

MyBatis(六)------MyBatis映射器(select元素、insert元素、update元素、select元素、sql元素)

目录 1、概述 2、select元素 2.1 简单的select元素的应用 2.2 自动映射和驼峰映射 2.3 传递多个参数 2.3.1 使用map接口传递参数 2.3.2 使用注解传递参数 2.3.3 使用Java Bean传递参数 2.3.4 使用混合方式传递参数 2.4 使用resultMap映射结果集 2.5 分页参数RowBounds 3、insert元...

应无所住而生其心 3713

mybatis(三) XML映射器之select、update、delete、insert标签

3、XML映射器 建表:user(用户表)、shoppingcart(购物车表)、goods(商品表) DROP TABLE IF EXISTS `goods`; CREATE TABLE `goods` ( `good_id` int(11) NOT NULL AUTO_INCREMENT, `good_name` varchar(255) DEFAULT NULL, PRIMARY KEY (`good_id`) ) ENGINE=InnoDB AUTO_INCREMENT=4 DEF

剪刀手何金银的技术博客 4666

Mybatis映射器之select解析

Mybatis映射器之select解析 1. 映射器概述 MyBatis 的真正强大在于它的映射语句,也是它的魔力所在。由于它的异常强大,映射器的 XML 文件就显得相对简单。如果拿它跟具有相同功能的 JDBC 代码进行对比,你会立即发现省掉了将近 95% 的代码。MyBatis 就是针对 SQL 构建的轻量级的框架,并且通过配置生成对应的JavaBean返回给调用者,并且比普通的方法做的更好...

渔潭的博客 5687

MyBatis系列-映射器XML篇

这是我的MyBatis系列的第二篇文章,MyBatis的XML映射,这篇文章将会详细的讲述MyBatis中的XML的映射,这篇文章将会从简单到复杂,从常用到不常用,详细的介绍XML对应的映射。希望通过此篇文章,能让您了解到MyBatis的各种XML映射,学会如何在项目中更好的应用MyBatis,降低成本,提高效率。在 MyBatis 中,XML 映射器是一种将 SQL 语句与 Java 方法进行映射的方式。

郝老三~~~~~~~~~~~~~ 2425

Mybatis映射器源码解析

Mybatis映射器 映射器是MyBatis最强大的⼯具,也是我们使用MyBatis时⽤得最多的工具,因此熟 练掌握它⼗分必要。MyBatis是针对映射器构造的SQL构建的轻量级框架,并且通过配置 生成对应的JavaBean返回给调用者,⽽这些配置主要便是映射器,在MyBatis中你可以根 据情况定义动态SQL来满足不同场景的需要,它比其他框架灵活得多。MyBatis还支持⾃动绑定JavaBean, 我们只要让SQL返回的字段名和JavaBean 的属性名保持一致(或者采⽤驼峰式命名),便可以省掉这些繁琐

srs1995的博客 436

MyBatis映射器

简述 映射器是MyBatis最复杂且最重要的组件,它由一个接口加上XML文件(或者注解)组成。在映射器中可以配置参数、各类SQL语句、存储过程、缓存、级联等复杂内容,并且通过建议的映射规则映射到指定的POJO或者其他对象上,映射器能有效消除JDBC底层的代码。 元素名称 描述 备注 select 查询语句,最常用、最复杂的元素之一 可以自定义参数,返回结果集等 insert 插...

qq_36525300的博客 334

MyBatis2(MyBatis基础配置 动态代理 映射器 select 元素 insert 元素 update 元素和delete 元素 resultMap 元素 多表联查)

在接口中有方法的返回值定义,参数的定义,方法名,在sqlMapper.xml 中也对应这接口给予了赋值, 这时候dao的实现类就显得多余,这是Mybatis可以帮助我们自动产生实现类,并可以调取方法得到结 果,这就是Mybatis的mapper动态代理。namespace: mybatis官方推荐使用mapper代理方法开发mapper接口,程序员不用编写mapper接口实现类,使用mapper代理方法时,输入 参数可以使用pojo包装对象或map对象,保证dao的通用性。

qq_52897007的博客 1309

MyBatis基础,映射器.xml文件详解

写在前面 很久以前在有道云笔记上写的笔记,打算放弃它了,将笔记迁移到这里来。文章可能还有很多不足,请大家谅解,欢迎大佬提意见。 本文使用到的东西 MyBatis java 文章目录写在前面本文使用到的东西1.映射器基础头文件2.mapper最外层标签3.resultMap配置java类在xml中的输出映射结构4.select、insert、update和delete标签5.总结 1.映射器基础...

玖涯博客 510

MyBatis中映射器Mapper概述

MyBatis真正强大之处在于它的映射器。因为它异常强大并且编写相对简单,不仅比传统编写SQL语句做的更好并且能节省将近95%的代码量 XML中顶级元素汇总 cache: 给定命名空间的缓存配置 cache-ref: 其他给定命名空间缓存配置的引用 resultMap: 最复杂也是最强大的元素,用来描述如何从数据库结果集中加载对象 sql: 可以被其他语句引用的重复语句块 insert: 映...

贰拾壹 367

MyBatis动态代理和映射器

mybatis的映射器概念和用法,select、insert、delete、update、resultMap元素、多表联查等...

weixin_71072718的博客 1348
上一篇: WebService(8)_Apache CXF安全机制_X509证书加密
下一篇: MyBatis_5 - MyBatis映射器(2)_insert
Simba_cheng
博客等级 码龄11年 250粉丝 203原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值