MyBatis——使用Mapper代理开发
使用 Mapper 代理开发方式完成入门案例
1、定义与SQL映射文件同名的Mapper接口,并将 Mapper 接口和SQL映射文件放置在同一目录下
(企业开发中,通常是将配置文件统一放到 resource 文件夹中,其编译完成后配置信息文件与com同目录)
创建同名的Mapper接口 interface





注意目录的创建方式中分层符号不再是 点 . 而是 斜杠 /
如果写成com.cqupt.mapper 其会创建一个名为此的文件夹 不会分层

将UserMapper.xml 移动进去

再次编译

这样就完成了在idea中配置信息文件仍在resource文件夹中 但编译后在同一目录下

2、设置SQL映射文件的namespace属性为Mapper接口全限定名

3、在 Mapper 接口中定义方法,方法名就是SQL映射文件中sql语句的id,并保持参数类型和返回值类型一致

在 UserMapper 接口中定义此方法

SQL映射文件路径更改了,mybatis-config.xml 配置文件中有加载SQL映射文件的部分,也需要改成现在的路径

找到SQL映射文件路径


--------关于sql映射文件的加载路径 若满足:(使用Mapper代理开发方式)
Mapper接口名称和SQL映射文件名称相同
编译后SQL映射文件与Mapper接口同目录
----可以使用包扫描方式简化SQL映射文件的加载
<!-- Mapper代理开发方式-->
<package name="com.cqupt.mapper"/>
4、编码
复制之前的MyBatisDemo

(1)通过 SqlSession 的 getMapper 方法获取 Mapper 接口的代理对象
// 3.1 获取UserMapper接口代理对象
UserMapper userMapper = sqlSession.getMapper(UserMapper.class);
(2)调用对应方法完成SQL的执行
// 3.2 调用对应的方法执行sql
List<User> users = userMapper.selectAll();
运行结果与之前相同:

MyBatis——使用Mapper代理开发的更多相关文章
- Mybatis的mapper代理开发方法
一.开发规范 1.映射文件中的namespase等于mapper接口类路径 2.statement的id与mapper中的方法名一致 3.让mapper的接口方法输入参数类型与statement中的p ...
- Mybatis的mapper代理开发dao方法
看完了之前的mybatis原始的dao开发方法是不是觉得有点笨重,甚至说没有发挥mybatis 作为一个框架的优势.总结了一下,原始的dao方法有以下几点不足之处 dao接口实现方法中存在大量的模板方 ...
- mybatis入门基础(二)----原始dao的开发和mapper代理开发
承接上一篇 mybatis入门基础(一) 看过上一篇的朋友,肯定可以看出,里面的MybatisService中存在大量的重复代码,看起来不是很清楚,但第一次那样写,是为了解mybatis的执行步骤,先 ...
- Spring+SpringMVC+MyBatis深入学习及搭建(二)——MyBatis原始Dao开发和mapper代理开发
转载请注明出处:http://www.cnblogs.com/Joanna-Yan/p/6869133.html 前面有写到Spring+SpringMVC+MyBatis深入学习及搭建(一)——My ...
- 【mybatis深度历险系列】深入浅出mybatis中原始dao的开发和mapper代理开发
使用Mybatis开发Dao,通常有两个方法,即原始Dao开发方法和Mapper接口开发方法.mybatis在进行dao开发的时候,涉及到三姐妹,分别是SqlSessionFactoryBuilder ...
- Mybatis学习总结(二)——Mapper代理开发
一.概要 1.原始DAO开发中存在的问题:(1)DAO实现方法体中存在很多过程性代码.(2)调用SqlSession的方法(select/insert/update)需要指定Statement的id, ...
- 【转】Mybatis学习---MyBatis知识、原始Dao开发和mapper代理开发
[原文]https://www.toutiao.com/i6594610137560777223/ 一.什么是MyBatis MyBatis 是一款优秀的持久层框架,它支持定制化 SQL.存储过程以及 ...
- mybatis 学习笔记(三):mapper 代理开发 dao 层
mybatis 学习笔记(三):mapper 代理开发 dao 层 优势 通过使用mapper 代理,我们可以不需要去编写具体的实现类(使用 getMapper() 方法自动生成),只需编写接口即可, ...
- Javaweb知识复习--MyBatis+Mapper代理开发
一种持久层框架,主要用于简化JDBC MyBatis应用步骤 1.在数据库里面创建一个表 2.创建模块,导入坐标 就是新建一个Maven项目,在pom.xml里面导入mybatis相应导包依赖代码: ...
- Mybatis 和Spring整合之mapper代理开发
F:\1ziliao\mybatis\代码 1.1 SqlMapConfig.xml <?xml version="1.0" encoding="UTF-8&quo ...
随机推荐
- Linux 提权-NFS 共享
本文通过 Google 翻译 NFS Share no_root_squash – Linux Privilege Escalation 这篇文章所产生,本人仅是对机器翻译中部分表达别扭的字词进行了校 ...
- Langchain 与 LlamaIndex:LLM 应用开发框架的比较与使用建议
Langchain 和 Llamaindex 是两种广泛使用的主流 LLM 应用开发框架.两者有什么不同?我们该如何使用?以下我根据各类资料和相关文档做了初步选型. 一.Langchain 1. 适用 ...
- TIER 0: Meow
TIER 0: Meow Virtual Machine 虚拟机 (VM) 指通过软件模拟完整计算机系统 可以实现环境隔离 模型宿主机不具备的架构 虚拟机的工作原理:在物理机器的操作系统上,以一个应用 ...
- 【VMware VCF】VMware Cloud Foundation Part 05:部署 SDDC 管理域。
之前文章("VMware Cloud Foundation Part 03:准备 Excel 参数表."和"VMware Cloud Foundation Part 04 ...
- 国内外GPT哪家强?对比#ChatGPT #bard #豆包 #bing #百度文心 #星火 #通义千问
#ChatGPT(openAi) ChatGPT已经被错误调教,经常把作者和名字搞混. #豆包(字节跳动) 豆包拒绝错误调教 #百度文心(百度) #星火(科大讯飞) #通义千问 (阿里巴巴) #bar ...
- python私有变量和方法
python私有变量和方法 1,私有变量和私有方法无法被继承 2,私有变量和私有方法可以放在普通方法(实例方法)里面被子类继承 class A: def __init__(self, name): s ...
- Jmeter的安装(Windows)
1.选择和本机JDK兼容的jmeter版本下载 Jmeter历史版本下载地址:https://archive.apache.org/dist/jmeter/binaries/ 此处我的jmeter5. ...
- 【MySQL】 批量更改库,表,字段的字符集
库一级的更改: -- 单个库字符集更改 ALTER DATABASE `ymcd_aisw` CHARACTER SET 'utf8' COLLATE 'utf8_general_ci'; ALTER ...
- Python Pillow(PIL 第三方模块)和 cv2 (opencv第三方模块)对图片的 resize 操作 (缩放图片大小)
PIL 模块的 resize 操作: 1. 从文件中读取图片,然后 resize 大小: import matplotlib.pyplot as plt import numpy as np ...
- 使用pybind11为Python编写一个简单的C语言扩展模块
相关: 为Python编写一个简单的C语言扩展模块 在Pybind11 出现之前为Python编写扩展模块的方法有多种,但是并没有哪种方法被认为一定比其他的好,因此也就变得在为Python编写扩展模块 ...