Mybatis mapper代理

Mybatis之Mapper代理开发 通用Mapper都可以极大的方便开发人员。可以随意的按照自己的需要选择通用方法,还可以很方便的开发自己的通用方法。参考gitee:MyBatis 通用 Mapper4。 阅读详情
命名规范
  1. Mapper文件的命名规则是 表名+Mapper.xml,接口的命名规则也是表名+Mapper,习惯上的规则。一般mapper文件和接口名称一致。
  2. Mapper文件的namespace必须是接口的全限定名。
  3. Mapper文件的statementID必须和接口的方法名称一致。
  4. Statement的parameterType必须和方法的参数一致。
  5. resultType必须和方法的返回值一致。
  6. 接口下有哪些抽象方法 mapper 文件下必须有对应的sql
service层告别中间商身份

没有使用Mybatis mapper的开发模式是:
web层调service层,service层调dao层。 service层只起到中间商的身份。
现在是dao层只有接口没有实现类,以前dao层的实现类中的操作现在写在service层的实现类中
例如:

//这是service层的实现类中的代码
SqlSessionFactory ssf = null;
	//这一步是提前定义好了一个static的SqlSessionFactoryBean
	public MenuServiceImpl(){
		try {
			ssf = SqlSessionFactoryBean.getSqlSessionFactor();			
		} catch (IOException e) {
			// TODO Auto-generated catch block
			e.printStackTrace();
		}
	}
	
	@Override
	public MenuBean getMenuBean (int menuId) {
		SqlSession session = ssf.openSession();
		MenuDao md = session.getMapper(MenuDao.class);
		MenuBean mb = md.getMenuBean(menuId);
		session.close();
		return mb;
	}

mapper配置文件中的命名规则:
namespace = “对应结构的全限名”
id 此结构下的方法的方法名
入参方法定义参数类型
出参方法定义返回值类型
例如:

<mapper namespace="dao.MenuDao"> 
		
		<!-- namespace = "对应结构的全限名" 
		id 此结构下的方法的方法名
		入参方法定义参数类型
		出参方法定义返回值类型 -->
	<select id="getMenuBean" parameterType="int" resultType="bean.MenuBean">
		select * from menu where menuId = #{menuId}
	</select>
mybatis中mapper生成代理的过程 目录 mybatis中mapper代理的生成过程 与Spring集成时mapper代理的生成过程 与SpringBoot集成时mapper代理的生成过程 mybatis中mapper代理的生成过程 构建代理类工厂 从入口点开始一步一步看,首先SqlSessionFactoryBuilder类中build()方法加载配置文件 public SqlSessionFactory build(InputStream inputStream, String environment, Properties pr 阅读详情

相关推荐

Mybatis之Mapper动态代理方式

目录一、 Mapper动态代理二.、Mapper动态代理规范三、Mapper.xml映射文件1.在src目录下创建mapper文件,在mapper文件下定义mapper接口2、在StudentMapper接口中编写方法3、Mapper.xml(映射文件)四、测试的Mapper动态代理开发规范 3、Mapper.xml(映射文件) 四、测试 创建一个测试类(TestDemo.java)

weixin_73509711的博客 1524

动态sql&分页

PageHelper插件实现分页的原理是根据使用不同的数据库,它会自动在执行的sql语句后面加所使用数据库对应的分页代码,比如mysql是limit、sqlserver是top、oracle是rownum。5).注意,动态sql的sql语句部分可以使用“>“和”>=”,但是不能使用“...

m0_58259839的博客 393

单片机入门说明书:从本质到架构,一文看透MCU核心原理

其实你每天用的洗衣机、刷的智能门锁、开的汽车里,都藏着它的身影。相当于工厂里的“运输轨道”,CPU算出的结果通过总线送到RAM存储,ROM里的程序通过总线传给CPU执行,外设的信号通过总线交给CPU处理,整个过程每秒能重复上百万次,确保各模块协同高效。高端单片机(比如STM32F4系列)还会配备DMA(直接存储器访问)单元,相当于“专用传送带”——不需要CPU干预,就能直接让外设和RAM之间传输数据(比如让ADC采集的温度数据直接存进RAM),大大降低CPU负担,让CPU能专注处理更重要的任务。

IAMIF12的博客 1041

XML 映射文件(Mapper 文件)的命名空间

组织和管理 SQL 映射规则:在 Mapper 文件中,通过命名空间来组织和管理与数据库表相关的 SQL 映射规则,包括查询、插入、更新、删除等操作方法。命名空间的唯一标识:每个 Mapper 文件都有一个唯一的命名空间,用于标识该 Mapper 文件的作用域和所管理的 SQL 映射规则。限定操作范围:通过命名空间来限定 Mapper 文件中定义的 SQL 映射规则的作用范围,使得这些规则只在特定的作用域内生效。,表示该 Mapper 文件负责管理与用户表相关的 SQL 映射规则。

思索的涟漪,突破自我 1554

【Labview与SQL Server互联(labview可以引用数据库)】

Labview与SQL Server互联

Magize的博客 3585

进程间通信的七种方法实战演示!值得收藏!

线程和进程间的通讯(Inter-Process Communication, IPC)是操作系统中的一个重要概念,用于实现不同进程或同一进程中的不同线程之间的数据交换和协调。以下是几个常见的进程间通信的方式:管道、消息队列、共享内存、信号、套接字、信号量、文件映射

十年饮冰,难凉热血,保持热爱,奔赴星海! 2816

Mybatis SQL映射文件详解

Mybatis SQL映射文件详解1、insert、update、delete元素2、select元素1、select的参数传递2、参数的取值方式3、处理集合返回结果—resultType4、自定义结果集---resultMap5、联合查询6、获取集合元素7、分步查询8、延迟查询3、动态sql1、if & trim2、foreach3、choose4、set4、缓存1、一级缓存的使用2、二级缓存1、缓存的使用2、缓存的属性3、整合第三方缓存 ​ 在Mybatis的介绍和基本使用学习了mybatis

EquinoxPrime的博客 600

【AutoDL】使用云服务器跑深度学习代码

1.算力市场 租用服务器,选择自己心仪的服务器2.镜像可以选择一些基础的镜像,社区镜像里是git上有的环境。3.上传文件在文件存储中,选择上传的区,在右边点击上传,选择自己的文件上传到云服务器中。

weixin_45768644的博客 3702

关于ssm框架service层以及mapper层的命名建议

3.mapper层对应的方法名selectXXX(xxx)--------service层对应的方法名get/queryXXX(xxx)1.mapper层对应的方法名deleteXXX(xxx)--------service层对应的方法名removeXXX(xxx)2.mapper层对应的方法名insertXXX(xxx)--------service层对应的方法名saveXXX(xxx)

weixin_52365243的博客 703

告别“单打独斗”:Oh My Open Code 如何用多模型协作重塑 AI 编程范式

介绍"Oh My OpenCode"——一个能协调多个专业AI模型完成复杂开发任务的智能编程框架。您将看到它如何分配任务、发挥不同模型的独特优势,并通过并行处理和实时纠错等功能解决AI编程流程中的常见痛点。

老孙 | Ethan Sun 的博客:AI 智能体与 AI 原生软件的工程实践 4211

SAP采购信息记录批量维护实战:用BAPI ME_INFORECORD_MAINTAIN搞定价格等级和条件记录

本文深入解析SAP标准BAPI ME_INFORECORD_MAINTAIN在采购信息记录批量维护中的应用,特别聚焦价格等级和条件记录的技术难点。通过实战案例和代码示例,帮助用户高效处理供应商-物料价格数据,提升供应链管理效率。

weixin_42522320的博客 410

mybatis Mapper接口方法命名问题

在MyBatis中,Mapper接口方法的命名是非常重要的,因为它直接影响到SQL语句的生成和映射。通常,Mapper接口方法的命名应该清晰地反映出它的功能,使用动词和主语的组合,使得方法名容易理解。在Mapper接口中添加必要的注释,特别是对于一些复杂的操作,解释方法的用途、参数的含义等,以方便其他开发人员理解和使用。对于动态查询,建议使用动词和描述性的词汇,以表达查询的目的。在一些复杂的查询场景中,可以使用自定义的命名,以反映方法的独特性。对于集合的操作,可以使用复数形式的名词或集合的描述性词汇。

Java开源程序猿 2424

技术前沿:半导体前道检测和量测设备修复技术

半导体前道检测设备是目前除光刻机外,国产渗透率较低的环节之一,近年来我国初步实现国产突破。前道检测相对后道检测环节壁垒更高,国内多家涉及后道测试,涉及前道检测和中道检测相对较少。

VOMMA的博客 4543

mybatis——Mapper代理方式

Dao接口实现类方法中存在大量模板方法,设想能否将这些代码提取出来,大大减轻程序员的工作量。调用sqlSession的数据库操作方法需要指定statement的id,这里存在硬编码,不利于开发维护。调用SqlSession方法时传入的变量,由于SqlSession方法使用泛型,即使变量类型传入错误,在编译阶段也不报错,不利于程序员开发。注:原始Dao开发和我们Web阶段讲解的Dao开发基本类似,都是有Dao接口和Dao实现类,无非Web阶段的Dao实现类中通过DBUtils来操作SQL;

weixin_64689713的博客 922

大厂面经:京东大数据面试题及参考答案(3万字长文)

Kafka是一个开源的分布式流处理平台,由 LinkedIn 开发并在 2011 年贡献给 Apache 软件基金会。高吞吐量:能够处理大量的数据流,适合实时数据管道。持久性:数据存储在磁盘上,确保数据不丢失。容错性:通过数据复制提供高可用性。扩展性:支持水平扩展,易于增加更多节点。Kafka 的核心概念Topic:逻辑上的数据流,可以理解为主题。Producer:生产数据的应用程序。Consumer:消费数据的应用程序。Broker:Kafka 集群中的服务器节点。Partition。

大模型大数据攻城狮的专栏 863

C# WinForm 基于DirectShow.dll编写的程序,可边预览边保存视频,音频和图片

基于微软的DirectShow.dll的二次开发1.自动识别连接的摄像头跟麦克风且可以对其进行选择(默认选中第一个)2.可录制wmv和avi两种格式的视频并且都带有音频,avi可以录制的分辨率和帧数进行选择,wmv默认进行了淸晰度优化如不喜欢可去除代码中有相关提示3.可在预览点开之后进行拍照,也可边录制视频边拍照4.添加了视频和音频的压缩功能(酌情使用)这次二次开发发现C#对DirectShow的相关信息太少,这次做完也不敢藏私共享出来,还望大家指正

MyBatis Mapper 接口代理

本文系统介绍了MyBatis框架中Mapper动态代理的开发方式,通过两个实战关卡详细讲解了XML映射文件的配置要点。第一关重点演示了增删改查基本操作,包括select、insert、update、delete标签的标准用法;第二关深入讲解了SQL代码复用(sql标签)和结果集映射(resultMap)等高级特性。文章强调接口方法与SQL语句的规范映射关系,分析了#{}与${}参数绑定的区别,并提供了经过验证的实用代码模板。通过从基础到进阶的内容编排,帮助开发者掌握MyBatis的高效开发方式,为构建企业级

m0_74311877的博客 1194

pscad IEEE标准系统搭建说明

pscad IEEE标准系统搭建说明,包含典型的IEEE 9节点、14节点、30节点、39节点和118节点系统。内含标准测试系统的原始数据和潮流结果。

MyBatis框架——Mapper代理

Mapper代理

S_5922的博客 992

LinePhone3.2.7(android端最新版本) sip客户端

SIP客户端For android:LinePhone3.2.7(最新版本),官网地址:http://www.linphone.org/

RU DOS版、EFI版32bit/64bit BIOS常用工具

DOS版、EFI版的RU工具,可用来查看IO、MEM、PCI、SMBIOS等资源。亲测在EFI SHELL下可用。

Mybatis的Mapper代理开发

这是一篇关于介绍Mybatis最重要的技术Mapper的介绍

2301_79619694的博客 530

MyBatis源码剖析之Mapper代理方式细节

MyBatis是一个流行的Java持久层框架,它提供了多种方式来执行数据库操作,其中之一就是通过Mapper代理方式。通过Mapper代理方式,开发者可以编写接口,然后MyBatis会动态地生成接口的实现类,从而避免了繁琐的SQL映射配置。具体代码如下:思考⼀个问题,通常的Mapper接⼝我们都没有实现的⽅法却可以使⽤,是为什么呢?是中的⼀个属性,它内部维护⼀个HashMap⽤于存放mapper接⼝的⼯⼚类,每个接⼝对应⼀个⼯⼚类。mappers中可以配置接⼝的包路径,或者某个具体的接⼝类。当解析。

write less , do more 5258

Mybatis使用Mapper代理

Mybatis使用Mapper代理

斯文~ 889

Mybatis Mapper 代理开发

Mybatis mapper代理

m0_72168501的博客 652

【Mybatis源码】Mybatis如何为mapper接口生成代理对象--JDK动态代理

引言 mybatis版本:3.5.1 mybatis-spring:2.0.1 使用过Mybatis框架的开发人员应该都知道,在编写dao层时,只需要提供mapper接口与相应的xxxMapper.xml,无需实现类,便可以将mapper接口对象交由Spring容器管理,疑问: Mybatis是如何为mapper接口生成代理对象的? Mybatis又是如何将mapper对象交给Spring管理? 我们在整合mybatis与spring时,都会使用MyBatis-Spring 将 MyBatis

骏马逸动,心随你动的博客 4289

Mybatis使用Mapper代理开发

在MyBatis中,Mapper接口作为数据访问层,它声明了操作数据库的方法。Mapper代理开发是指MyBatis会自动为Mapper接口生成代理实现类,开发者只需编写接口方法声明即可。这种方式大大简化了开发步骤。说人话就是:创建接口,放统一目录。1.1创建Mapper接口1.2文件放在同一目录1.2.1右键点击BrandMapper, 左键点击 CopyPath1.2.2Path From Source Root 后面就是BrandMapper的路径。

1328

MyBatis之Mapper的动态代理实现原理

为了方便理解MyBatis的Mapper的动态代理实现原理,下面编写简单的动态代理实现方式,模仿MyBatis的Mapper实现一个UserMapper,通过定义Mapper接口UserMapper,然后调用 UserMapper userMapper = MapperFactory.getMapper(UserMapper.class); List<Integer> list = userMapper.getList(); 获取UserMapper的代理对象,代理对象直接返回一个Li.

alterhz的博客 727

Mybatis——mapper代理

使用mapper代理的好处就是,当我们写了DAO后,Mybatis会自动帮我们自动实现实现类,不用我们再写DAOImpl。 而我们要做的就是: 编写DAO接口 编写与DAO中方法相对应的mapper.xml mapper.xml标签编写规则 namespace为DAO接口的全类名 id为DAO接口中对应方法的名字 parameterType为DAO接口中对应方法的参数类型 resultTyp...

Stay Hungry Stay Foolish 637

MyBatis入门之Mapper代理开发

Mapper代理开发指的是使用MyBatis框架进行数据访问层的开发,其中Mapper代理是一种简化了SQL语句的方式。

qq_44016488的博客 385
上一篇: Mybatis创建增删改查
下一篇: 配置分页
lemon20120331
博客等级 码龄9年 277粉丝 119原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

lemon20120331

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值