mapper映射文件配置之insert、update、delete在mapper文件中,以mapper作为根节点,其下面可以配置的元素节点有: select, insert, update, delete, cache, cache-ref, resultMap, sql 。insert, update, delete 配置:<?xml version="1.0" encoding="UTF
转载 2024-04-10 12:07:21
496阅读
一,增加操作在java里面的UserMapper里面添加方法,用处是实现insertvoid insertInToUser(User user);在resources里面的User Mapper里面添加方法,用处是实现前面设置的insert方法。<insert id="insertInToUser" > insert into t_user values (#{use
转载 2024-10-24 22:27:58
61阅读
背景由于项目中需要大批量将数据插入数据库,直接使用mybatis-plus中的批量插入方法,结果发现效率奇低无比,线上批量插入一千条数据居然花销八九秒的时间。而我们的目标是想要单次插入一万条数据,这样的效率完全无法接受。问题追踪mybatis-plus的源码IService中是有单次批量插入的大小,默认的DEFAULT_BATCH_SIZE=1000,可以看到很多批量方法里面都有设置;通过修改调用
转载 11月前
393阅读
一、前言在使用 MyBatis 时,最长打交道的就是 XML映射文件 , 使用 MyBatis 的 select、insert、update、delete 实现数据库的增删改查。 但是用的时间多了,发现相同的查询,却又很多中使用方法,属性的配置也是有多种方式,每次都会去抉择该使用哪一种比较好?无奈耽误了开发时间。 这里主要总结的就是一套最常用,也是本人觉的最合理的MyBatis用法,记住这里的,
转载 2024-09-21 07:15:18
421阅读
 原生批量插入的“坑”首先,我们来看一下 MyBatis 原生批量插入中的坑,当我们批量插入 10 万条数据时,实现代码如下:import com.example.demo.model.User; import com.example.demo.service.impl.UserServiceImpl; import org.junit.jupiter.api.Test; import
转载 7月前
51阅读
mybatis的实际使用@Test public void test() { try(SqlSession sqlSession = sqlSessionFactory.openSession()){ // mybatis在 getMapper就会给我们创建jdk动态代理 EmpMapper mapper = sqlSession.getMapper(Emp
转载 7月前
30阅读
自定义Mybatis拦截器与动态SQL的完美结合MyBatis的插件主要分为四大类,分别拦截四大核心对象:Executor、StatementHandler、ParameterHandler、ResultSetHandler。这些插件可以用来实现多种功能,例如性能监控、事务处理、安全控制等。Executor 拦截器: 介绍说明: Executor 拦截器主要用于拦截数据库的执行器,它负责执行 M
转载 10月前
274阅读
在使用 MyBatis 和 MySQL 进行数据插入操作时,获取插入数据所生成的主键是一个常见的需求。特别是在涉及到业务逻辑需要利用这些主键时,确保能够有效地获取并使用这些信息至关重要。本文将从技术原理到解决方案逐步分析如何在 MyBatis 中实现这一需求。 ## 背景描述 在开发过程中,我经常会遇到需要插入数据并获取生成主键的场景。比如在用户注册时,插入用户信息后需要获取用户的 ID 进行
原创 6月前
41阅读
mybatisplus 复合主键CRUD需求描述最近接到个挺有意思的需求,做用户观看学习视频时长的一个数据埋点储存用户观看视频时长、记录的接口的调用肯定会特别频繁,因为每间隔指定时间每个用户都会调用,如果在这个接口里直接操作数据库将会给我们的数据库带来一定的压力,在我的代码中是不允许的,而我是这样完成这个需求的:首先将用户观看视频的时长、记录存储到阿里云的日志库里,随后以定时器从阿里云的日志库中拉
转载 2024-04-04 19:44:05
1537阅读
在我们开发过程中,在插入数据到数据库时,很多时候都需要把其主键返回,这里就说一下mybatis是怎么获取的。 其中mysql和oracle是不同的做法,因为mysql本身就提供字段自增的属性,而oracle则需要使用序列。 mysql 配置中,keyProperty表示返回的id要保存到对象的那个属
转载 2018-08-03 17:48:00
162阅读
2评论
Mybatis批量插入和批量更新数据的资料相信大家从网上能查找到很多资料,本文重点总结一下mybatis执行批量插入insert和批量更新update数据。在mysql数据库中批量插入,如:insert into ... values (),(),...语法;而在oracle数据库中批量插入如:insert into selcect ... union all select ...语法。mysql
1. 关于参数<select id="selectPerson" parameterType="int" resultType="hashmap"> SELECT * FROM PERSON WHERE ID = #{id} </select>接受一个 int(或 Integer)类型的参数,并返回一个 HashMap 类型的对象,其中的键是列名,值便是结果行中的对应值
转载 10月前
326阅读
前提条件假设我们这里有一个 Student 表,结构如下其中主键 sid 是自增的,那么我们插入数据时就不用插入 sid,它会生成一个自增的 sid。 StudentMapper 接口中的 insert 方法int insert(Student student);StudentMapper.xml 中的 insert 标签<insert id
转载 1月前
445阅读
作者:不才陈某目录前言环境配置错误示范为什么不能重载?如何找到XML中对应的SQL?总结前言在初入门Mybatis的时候可能都犯过一个错误,那就是在写Mapper接口的时候都重载过其中的方法,但是运行起来总是报错,那时候真的挺郁闷的,但是自己也查不出来原因,只能默默的改了方法名,哈哈,多么卑微的操作。今天就写一篇文章从源码角度为大家解惑为什么Mybatis中的方法不能重载?环境配置本篇文章讲的一切
# MySQL存储过程insert获取主键 在MySQL数据库中,存储过程是一种预先定义好的SQL语句集合,可以被多次调用。存储过程可以简化复杂的数据库操作,提高数据库性能,并且可以在其中实现一些特定的逻辑。在一些场景下,我们可能需要在插入数据后获取插入数据的主键值,这时可以使用存储过程来实现。 ## 插入数据并获取主键值 在MySQL中,通过LAST_INSERT_ID()函数可以获取最后
原创 2024-05-16 03:27:05
98阅读
文章目录日志的配置CRUD的扩展使用插入测试:主键生成策略:主键自增解决方法:更新测试:自动填充乐观锁:悲观锁:查询操作分页查询删除操作: 日志的配置(默认的是控制台打印出来)# mybatisplus配置 mybatis-plus.configuration.log-impl=org.apache.ibatis.logging.stdout.StdOutImpl配置日志后,就可以看到控制台有相
一、应用情景介绍在实际的项目开发过程中,常常遇到批量保存数据的场景,当数据量比较少,比如只有几条数据的情况下,我们可以使用 for 循环来 insert 数据,但如果数据量比较多的情况下就不行,特别是并发的情况下,因为这样会增加数据库的负担。我们通过查看 mybatis-plus 源码发现,mybatis-plus 的 IService API 接口提供了批量插入的接口:public interf
转载 2024-05-28 12:44:17
3616阅读
linq to sql 在插入值的时候还是很方便。有时候我们需要在插入一个新实体之后得到那个实体的主键ID的值,这个ID当然必须是自增。通过观察linq to sql插入之后产生的sql发现,它自动生成了两条语句,一条insert,一条select,而且那条select正好就是查询的最后生成的主键ID,真是不可思议呀。 结论:LINQ插入值后(自增的字段ID),对应的实体属性(ID
转载 6月前
51阅读
今天给大家介绍一位老朋友当你第一次接触Java开发的时候,这个老朋友就和你形影不离,当你要进行ORM的时候,单表的增删改查,这位老朋友给了你极大的帮助,不知道你想到他了吗?对,这就是通用mapper,这也是对于这位老朋友最简单的介绍如果你是新来做客的程序猿,我给你详细的介绍一下它;你要是老牌程序员,我们来重新认识一下代码结构 库表 配置文件在applicationConte
其属性如下:parameterTypekeyColumnkeyPropertyuseGeneratedKeysstatementTypeflushCachetimeoutdatabaseId selectKey子元素详解   作用:在insert元素和update元素中插入查询语句。   其属性如下:keyPropertyresultTypeorder属性statementT
  • 1
  • 2
  • 3
  • 4
  • 5