MyBatis 知识整理 (第二部分)

MyBatis批量插入的五种方式整理 目录一:预备工作1:pom依赖:2:配置yml文件3:公用的User类:二、不同的实现方法1:MyBatis利用For循环批量插入(1)、编写UserService服务类,测试一万条数据耗时情况(2)、编写UserMapper接口(3)、编写UserMapper.xml文件(4)、进行单元测试(5)、结果输出2:MyBatis的手动批量提交(1)、其他保持不变,Service层作稍微的变化(2)、结果输出3:MyBatis以集合方式批量新增(推荐)(1)、编写UserService服务类(2)、编写User 阅读详情

六、MyBatis 的 ${} 和 #{} 的区别

特性

#{}

${}

底层实现​

使用 PreparedStatement

使用 Statement

类型转换​

自动进行类型转换

不进行类型转换

单个简单类型参数​

#{任意字符串}

${value}

防止 SQL 注入​

有效防止

无法防止

应用场景建议:

  • 绝大多数情况下使用 #{},安全且高效

  • 只有在需要动态拼接 SQL 片段(如表名、列名等)时使用 ${},但需注意安全风险

七、MyBatis 的 ORM 映射

1. 字段起别名

-- 直接在 SQL 查询中为字段起别名
SELECT id, role_name roleName, role_desc roleDesc FROM role

2. 结果映射(ResultMap)【重点】

<!-- 定义结果映射 -->
<resultMap id="roleResultMap" type="com.example.pojo.Role">
    <!-- 主键字段映射 -->
    <id column="id" property="id"/>
    
    <!-- 非主键字段映射 -->
    <result column="role_name" property="roleName"/>
    <result column="role_desc" property="roleDesc"/>
</resultMap>

<!-- 使用结果映射 -->
<select id="findAllRoles" resultMap="roleResultMap">
    SELECT * FROM role
</select>

优点:

  • 将数据库字段与Java对象属性解耦

  • 支持复杂的关联关系映射

  • 提高代码的可维护性

八、MyBatis 的别名配置

1. MyBatis 内置别名

  • Java 基本类型:_int, _integer, _long, _double, _float, _boolean

  • 包装类型:int, integer, long, double, float, boolean, string

  • 集合类型:list, arraylist, map, hashmap

  • 注意:所有内置别名全部小写

2. 自定义别名

<typeAliases>
    <!-- 方式1:单个定义别名 -->
    <typeAlias type="com.example.pojo.User" alias="user"/>
    
    <!-- 方式2:批量定义别名(推荐) -->
    <!-- 默认将包下所有类的类名(首字母小写)作为别名 -->
    <package name="com.example.pojo"/>
</typeAliases>

九、批量引入映射配置文件

<mappers>
    <!-- 方式1:直接引入单个映射文件 -->
    <mapper resource="com/example/mapper/UserMapper.xml"/>
    
    <!-- 方式2:通过接口类引入单个映射文件 -->
    <mapper class="com.example.mapper.UserMapper"/>
    
    <!-- 方式3:批量引入映射文件(推荐) -->
    <package name="com.example.mapper"/>
</mappers>

注意事项:

  • 使用package方式时,要求接口名与映射文件名相同且在同一目录下

  • 批量引入可减少配置,提高开发效率

  • 确保MyBatis能够找到对应的映射文件


常用的集成TTL门电路 本篇主要分析了常用的逻辑门电路与非门,详细分析了电源原理。值得收藏。 阅读详情

相关推荐

【win11】主板更新之后pin不可用,恢复方法

台式机的主板更新了BIOS,再开机竟然登录不进去系统了。 登录界面上显示:【由于此设备上的安全设置已更改,你的pin码不再可用。单击以重新设置pin】 点击【单击以重新设置pin】没有任何反应。 也没有密码登录选项。 在网上找到解决方法,不用PE,只需要按步骤操作即可。通过实际验证可行,现记录如下。

1万+

Mybatis知识点整理

1、Mybatis概述 1.1 JDBC编程 1.2.说说你对Mybatis的了解 1.Mybatis 基于java的持久层框架,它的内部封装了JDBC,让开发人员只需要关注SQL语句本身,不需要花费精力在驱动的加载、连接的创建、Statement的创建等复杂的过程。 2.Mybatis通过XML或注解的方式将要执行的各种的statement配置起来,并通过java对象和statement中的sql的动态参数进行映射生成最终执行的SQL语句,最后由mybatis框架执行SQL,并将结果直接

你好啊cbw 1万+

arcgis select by attributes一次选多个_视频:如何基于ArcGIS与GeoDa求莫兰指数和绘制莫兰散点图?...

莫兰指数是全域莫兰指数(Global Moran's I)的简称,是澳大利亚统计学家帕特里克·阿尔弗雷德·皮尔斯·莫兰(Patrick Alfred Pierce Moran),在1950年提出的。详细介绍,如下:莫兰指数取值范围在-1.0至1.0之间。当Moran's I >0时,表示空间正相关性,其值越大,空间相关性越明显;当Moran's I <0时,表示空间负相关性...

weixin_39948247的博客 1759

知识点整理,MyBatis面试题

什么是Mybatis? 1、Mybatis 是一个半 ORM(对象关系映射)框架,它内部封装了 JDBC,开发时 只需要关注 SQL 语句本身,不需要花费精力去处理加载驱动、创建连接、创建 statement 等繁杂的过程。程序员直接编写原生态 sql,可以严格控制 sql 执行性 能,灵活度高。 2、MyBatis 可以使用 XML 或注解来配置和映射原生信息,将 POJO 映射成数 据库中的记...

BoCong-Deng的博客 1万+

关于深度可分离卷积

关于深度学习中的深度可分离卷积

qq_45670407的博客 1796

人大金仓的‘影子表’sys_user:搞懂Schema优先级,告别字段不存在的报错

本文深入解析人大金仓数据库中‘影子表’sys_user的Schema优先级问题,帮助开发者解决字段不存在的报错。通过分析Schema搜索路径机制,提供四种解决方案,包括连接时指定Schema、动态调整搜索路径、永久修改用户设置和使用完全限定表名,确保查询准确无误。

weixin_30329623的博客 596

SSM框架之mybatis部分知识点整理

SSM框架之mybatis部分知识点 基本映射关系: 数据表映射类,表中行映射对象(实例),表中列映射对象的属性 Mybatis的主要思想是: 把程序中大量的SQL语句抽取出来配置在配置文件中 JDBC的操作: 注册驱动→获取连接→获取操作数据库的预处理对象→执行SQL,得到结果集→遍历结果集→释放资源 Mybatis的环境搭建: 创建maven工程并导入坐标→创建实体类和接口→创建Mybatis...

zs_sss的博客 311

网易数智CoreAgent实战:5步教你打造企业级AI数字员工(附避坑指南)

本文以网易数智CoreAgent智能体协作中枢为核心,提供了一份企业级AI数字员工的实战部署指南。文章详细拆解了从环境准备、智能体配置、业务集成、安全合规到效果评估的五个关键步骤,并分享了部署过程中的常见“避坑”经验,旨在帮助企业技术团队高效、安全地将AI智能体落地于实际业务场景,解决AI落地难题。

rice5的博客 951

Mybatis框架知识整理

Mybatis简介 学习框架前,先梳理原始JDBC如何操作数据库 原始JDBC操作 查询数据 引入依赖 <dependencies> <dependency> <groupId>junit</groupId> <artifactId>junit</artifactId> <version>4.13.2</version&gt

寻找你的海洋 4861

视频流推理的工程架构:YOLO模型如何做到单卡处理16路1080P实时流?

<think>我们只需要根据内容生成摘要,不超过150字。内容是关于YOLO模型单卡处理16路1080P实时流的技术分析,包括方案对比、架构设计等。摘要要简洁,突出关键点。</think>本文深度解析了YOLO模型单卡处理16路1080P实时流的技术方案,对比EagleEye、TensorRT+DeepStream、华为CANN及RK3588四条路线,重点介绍流水线架构、并发模型及显存优化,指出消费级显卡(如RTX 4090)即可实现高并发智能视觉分析。

2601_95807009的博客 162

基于QT+Halcon实现线序识别

一、线序识别算法步骤。 1.按照检测区域m_pItem1的外接矩形(rtBount)的大小, 截取感兴趣区域图像hRoi。 2.把截取出来的感兴趣区域图像hRoi, 分离出R、G、B三个通道hRed、hGreen、hBlue。 3.把hRed、hGreen、hBlue三个通道转换成cielab颜色空间, 得到hChannelL、hChannelA、hChannelB三个颜色图。 4.设m_pItem1的宽为iItemW, 高为iItemH. 分别申请大小为iItemW的pSumL、pSumA、pSumB内

专注现代C++实战,从核心语法到高性能编程,助力开发者深入掌握系统级编程精髓。 1748

mybatis知识整理

mybatis知识整理 1、mybatis的xml文件中 的大于小于 不能 直接使用 > < 符号来比较大小 应该是 &gt; 或者 &lt; 2、Mybatis基础知识,更新语句updateSelective和单纯的update语句区别,前者是根据选中要更新的字段进行更新,如果有空的字段,则会保留原有字段值,不会全部更新。后者则是全部更新字段,有空值则字段值为空。 3、mybatis的Mapper.xml案例,下面这个案例不要照抄,有问题,模糊查询的时候 用了 OR

宁不知的博客 421

Monorepo与pnpm:前端项目管理的完美搭档

pnpm又称 performant npm,翻译过来就是高性能的npm。Monorepo是一种项目开发与管理的策略模式,它代表"单一代码仓库"(Monolithic Repository)。在Monorepo模式中,所有相关的项目和组件都被存储在一个统一的代码仓库中,而不是分散在多个独立的代码仓库中,这些项目之间还可能会有依赖关系。

m0_68271787的博客 2562

myBatis笔记(第二部分)

前言 对于上次笔记我个人认为不够直观,不能够达到很好的观看效果,加上之前笔记做的有点久了,自己也有点忘记,这次的笔记我打算重新整理,让这次的笔记整理的能够更加的透彻。 myBatis的入门 1.需要的预备知识 1.对java的jdbc能够熟练掌握 2.接触过dao层(持久层)封装,也应该熟练掌握,这样会更好的理解(因为尝试过写dao的痛苦后才能知道myBatis的甜头,以及为什么要这么做) 3.对三层有一定的了解(这个不一定要知道,不影响学习myBatis,但是现在开发模式都是这样,不知道也得知道) 4.至

qq_43538697的博客 250

数学建模模型总结

这是本人在两年内准备参加数学建模竞赛搜集到的模型资料,已经经过了本人的筛选和整理,希望能够对准备参加数学建模竞赛的学弟学妹们提供一些帮助!

汉书HE8,好用的汇编代码编写工具

汉书HE8,好用的汇编代码编写工具早期编写汇编代码所用功能强大

MyBatis思维导图(知识点总结,含面试题整理)

前言 针对SSM框架,进行知识点+面试问题的汇总。 SSM思维导图目录 框架概念 Spring Spring概述 IOC Beans AOP代理模式 AOP Spring事务管理(AOP最经典的体现) SpringMVC SpringMVC概述 SpringMVC 工作原理了解吗?(面试概括型) 程序运行流程图(理解深入型) @RequestMapping注解 REST(Representational State Transfer)表述性状态传递

Sold Out 2980

visio安装包

Microsoft Office Visio 是一款专业的制图软件。利用经过更新的形状、协作工具和数据链接图表,创建专业级图表以简化复杂的信息。

MyBatis知识点整理

什么是 MyBatis? MyBatis 是一个可以自定义 SQL、存储过程和高级映射的持久层框架。 MyBatis 的缓存 MyBatis 的缓存分为一级缓存和二级缓存, 一级缓存放在 session 里面,默认就有, 二级缓在它的命名空间里,默认是不打开的, 使用二级缓存属性类需要实现 Serializable 序列化接口(可用来保存对象的状态),可在它的映射文件中配置 Mybatis是如何进行分页的?分页插件的原理是什么? 1)Mybatis 使用 RowBounds 对象进行分页,也可以直接编写 s

weixin_44606594的博客 302

假人有限元模型

假人模型,车辆碰撞假人有限元模型,适合做乘员安全的研究者利用

全面整理MyBatis知识点

数据库连接创建、释放频繁造成系统资源浪费从而影响系统性能,如果使用数据库连接池可解决此问题。Mybatis解决:在中配置数据库连接池,使用连接池管理数据库连接。Sql 语句写在代码中造成代码不易维护,实际应用 sql 变化的可能较大,sql 变动需要改变 java 代码。Mybatis解决:将 Sql 语句配置在 xxxxmapper.xml 文件中与 java 代码分离。向 Sql 语句传参数麻烦,因为 Sql 语句的 where 条件不一定,可能多也可能少,占位符需要和参数一一对应。

good___lucky的博客 807

java通俗讲解的知识点整理

1. volatile关键字的讲解:传送门 2. transient关键字的讲解:传送门 3. synchronized关键字的讲解:传送门

l8947943的博客 4443

MyBatis从入门到精通、MyBatis知识点整理总结

一.初识MyBatis1、MyBatis是Java轻量级的持久层框架2、常见的持久层框架:hibernate,mybatis3、什么是持久层框架:1》Java当中的对象有两种状态,一种是瞬态,一种是持久态2》所谓瞬态:是指new了一对象,使用完毕后,java自动垃圾回收了,对象中的属性和状态没有保持住,这就是瞬态对象。3》所谓持久态:这个对象的状态和属性保持住了,其中保存的位置有很多种,比如文件或...

qq_41426442的博客 2960

开源框架专栏-MyBatis知识点整理(1)

1、什么是MyBatis? 2、讲下MyBatis的缓存 3、Mybatis 是如何进行分页的?分页插件的原理是什么? 4、简述Mybatis的插件运行原理,以及如何编写一个插件? 5、Mybatis 动态sq|是做什么的?都有哪些动态sq|?能简述一下动态 sql的执行原理吗? 6、#机和$0的区别是什么? 7、为什么说Mybatis是半自动ORM映射工具?它与全自动的区别在哪里? 8、Mybatis 是否支持延迟加载?如果支持,它的实现原理是什么? 9、MyBatis与Hibernate有哪些不同?

涛子丶白了你一眼的博客 5404

MyBatis知识整理

一、MyBatis架构 1、 mybatis配置 SqlMapConfig.xml:此文件作为mybatis的全局配置文件,配置了mybatis的运行环境等信息。 mapper.xml:即sql映射文件,文件中配置了操作数据库的sql语句。此文件需要在SqlMapConfig.xml中加载。 2、 通过mybatis环境等配置信息构造SqlSessionFactory即会话工厂 3、 由会话工厂...

zgfzmj的博客 219

Mybatis 核心知识点整理成图

文章目录Mybatis开发流程传统开发简要流程接口代理开发简要流程接口开发六点注意事项sqlMapperConfig 核心配置文件mybatis相关API输入输出映射常用动态Sql标签分步查询延迟加载延迟加载失效的情况延迟加载原理缓存机制一级缓存工作机制二级缓存机制注解开发常用注解 Mybatis开发流程 传统开发简要流程 导入mybatis依赖 配置mybatis-config.xml 配置mapper.xml 定义接口及其实现类 接口代理开发简要流程 导入mybatis依赖 配置m

纸上得来终觉浅,绝知此事要躬行 2434

mybatis模糊查询、以及模糊知识点整理

是预编译处理,MyBatis在处理#{ }时,它会将sql中的#{ }替换为?,然后调用PreparedStatement的set方法来赋值,传入字符串后,会在值两边加上单引号,使用占位符的方式提高效率,可以防止sql注入。当编译器检测到需要将一个包装类对象赋给一个基本数据类型的变量,或者包装类对象参与基本数据类型的运算时,它会调用包装类对象的。注意:在拆箱操作时,如果包装类对象为null,则会抛出NullPointerException,因此在进行拆箱之前,应始终检查包装类对象是否为null,或使用。

qq_69331283的博客 790

2023MySQL+MyBatis知识点整理

一系列设计数据库模型的规范。第一范式:原子性约束,不可再分解第二范式:唯一性约束第三范式:字段没有冗余性能优化策略,通过在表中增加冗余数据提高数据库读取性能。一系列操作要不全部成功,要不全部失败(只要其中一个环节失败就会触发回滚恢复到执行前状态)ACID(原子性、一致性、隔离性、持久性)脏读:一个事务读取到了其他事务还未提交的数据不可重复读:相同SQL查到同一条数据值不一样幻读:条数不一样。

qq_24095055的博客 1053

Mybatis知识整理

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

weixin_50735831的博客 315
上一篇: MyBatis---(第一部分)
下一篇: MyBatis知识整理----(第三部分)
StackNoOverflow
博客等级 码龄1年 22粉丝 48原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值