一、前言在使用 MyBatis 时,最长打交道就是 XML映射文件 , 使用 MyBatis select、insert、update、delete 实现数据库增删改查。 但是用时间多了,发现相同查询,却又很多中使用方法,属性配置也是有多种方式,每次都会去抉择该使用哪一种比较好?无奈耽误了开发时间。 这里主要总结就是一套最常用,也是本人觉最合理MyBatis用法,记住这里
转载 2024-09-21 07:15:18
421阅读
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阅读
文章目录日志配置CRUD扩展使用插入测试:主键生成策略:主键自增解决方法:更新测试:自动填充乐观锁:悲观锁:查询操作分页查询删除操作: 日志配置(默认是控制台打印出来)# mybatisplus配置 mybatis-plus.configuration.log-impl=org.apache.ibatis.logging.stdout.StdOutImpl配置日志后,就可以看到控制台有相
自定义Mybatis拦截器与动态SQL完美结合MyBatis插件主要分为四大类,分别拦截四大核心对象:Executor、StatementHandler、ParameterHandler、ResultSetHandler。这些插件可以用来实现多种功能,例如性能监控、事务处理、安全控制等。Executor 拦截器: 介绍说明: Executor 拦截器主要用于拦截数据库执行器,它负责执行 M
转载 10月前
274阅读
一,增加操作在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 原生批量插入坑,当我们批量插入 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-plus批量插入方法,结果发现效率奇低无比,线上批量插入一千条数据居然花销八九秒时间。而我们目标是想要单次插入一万条数据,这样效率完全无法接受。问题追踪mybatis-plus源码IService是有单次批量插入大小,默认DEFAULT_BATCH_SIZE=1000,可以看到很多批量方法里面都有设置;通过修改调用
转载 11月前
393阅读
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方法不能重载?环境配置本篇文章讲一切
一、应用情景介绍在实际项目开发过程,常常遇到批量保存数据场景,当数据量比较少,比如只有几条数据情况下,我们可以使用 for 循环来 insert 数据,但如果数据量比较多情况下就不行,特别是并发情况下,因为这样会增加数据库负担。我们通过查看 mybatis-plus 源码发现,mybatis-plus IService API 接口提供了批量插入接口:public interf
转载 2024-05-28 12:44:17
3616阅读
分页插件PageHeplerMapper接口package com.example.tlias.mapper; import com.example.tlias.pojo.Emp; import org.apache.ibatis.annotations.Mapper; import org.apache.ibatis.annotations.Select; import java.util.
其属性如下:parameterTypekeyColumnkeyPropertyuseGeneratedKeysstatementTypeflushCachetimeoutdatabaseId selectKey子元素详解   作用:在insert元素和update元素插入查询语句。   其属性如下:keyPropertyresultTypeorder属性statementT
今天给大家介绍一位老朋友当你第一次接触Java开发时候,这个老朋友就和你形影不离,当你要进行ORM时候,单表增删改查,这位老朋友给了你极大帮助,不知道你想到他了吗?对,这就是通用mapper,这也是对于这位老朋友最简单介绍如果你是新来做客程序猿,我给你详细介绍一下它;你要是老牌程序员,我们来重新认识一下代码结构 库表 配置文件在applicationConte
<?xml version="1.0" encoding="UTF-8" ?> <!DOCTYPE mapper PUBLIC "-//ibatis.apache.org//DTD Mapper 3.0//EN" "http://ibatis.apache.org/dtd/ibatis-3-mapper.dtd"> <!-- mapper 为根元素
转载 2024-10-03 15:21:27
117阅读
mybatis 注解方式mybatis支持注解方式来实现减少配置目的,对于简单CRUD,可以完全依赖于@Select @Insert @Upadte @Delete四个注解来实现。优点是对于需求较为简单系统,开发效率高,但是每当sql语句有变化时候,都需要修改代码进行重新编译,所以实际开发根据具体情况来使用。###1、@Select注解在RoleMapper接口中添加查询方法和对应注解
转载 2024-04-20 22:14:17
0阅读
打开一个会话Session前文分析了MyBatis将配置文件转换为Java对象流程,本文开始分析一下insert方法、update方法、delete方法处理流程,至于为什么这三个方法要放在一起说,是因为:从语义角度,insert、update、delete都是属于对数据库行进行更新操作从实现角度,我们熟悉PreparedStatement里面提供了两种execute方法,一种是exec
转载 2024-03-16 09:58:11
720阅读
引言衡量我们是否掌握一种知识,标准是我们对它核心技术和原理掌握程度。概述mybatis核心技术包括:反射和动态代理;mybatis运行原理分为俩部分,第一部分是读取配置文件缓存到Configuration对象,用以创建SqlSessionFactory,第二部分是SqlSession执行过程。内容一 核心技术        
转载 7月前
103阅读
  • 1
  • 2
  • 3
  • 4
  • 5