前面的博客已经介绍了mybatis的主配置文件的解析以及mapper文件的解析的全流程,我们已经得知mapper文件解析有两种情况,一种是只有#占位符的SQL语句,这种查询语句会将#转成?。还有一种就是含有$或者动态标签的SQL语句,这个时候不做任何处理。今天针对这两种情况,我们来分析一下源码,不过只分析select查询,至于还有insert delete update 会在下篇博客中详细说明。下
转载 2024-10-21 15:54:40
229阅读
背景提到 ORM 框架,我们现在使用最多的是 MyBatisMyBatis 解决了 Hibernate 不够灵活的问题,但是由于 MyBatis 需要手动指定数据库表和实体类之间的映射关系,对于单表而言,简单的增删改查我们也不得不写大量的 xml 配置。MyBatis 官方为此又推出了一个 MyBatis Generator 的项目,可以为我们生成 Mapper 接口和配置文件,这大大缓解了开发
转载 2024-03-06 11:18:51
262阅读
MyBatis运行sql脚本(博客迁移文章,原发表于2016-02-16 10:33:21)
原创 5月前
58阅读
首先写MYBATIS之前,一定要搞清楚他具体的步骤是什么 每一步的原因搭建环境 (使用maven项目创建 导入mysql的jar包等等 一切的环境都配置好了之后)<?xml version="1.0" encoding="UTF-8" ?> <!DOCTYPE configuration PUBLIC "-//mybatis.org//DTD Config 3.0
转载 7月前
39阅读
一切的执行从MapperProxy开始,MapperProxy是MapperProxyFactory使用SqlSession创建出来的。所以MapperProxy中包含SqlSession。执行过程如下可以看到MapperProxy调用invoke方法,进而调用MapperMethod的execute(),这些MapperMethod就是和你要执行的命令相关,比如执行select语句,则会通过Sq
转载 2024-06-13 18:45:26
116阅读
最近的一个项目中,我用到了通用mapper,使用后单表的sql操作都很简单了。那么通用mapper是如何能实现通用的呢,我总结一下我自己的想法。 首先,通用mapper的接口都是使用泛型,就可以保障所有类都能用。 要想让通用mapper实现自己构建sql语句,那么它就首先要知道我们实体类中的所有属性,这点可以通过反射来实现。通过反射机制可以获取类的所有属性信息,然后再拼接成完成的sql语句。然后就
SpringBoot整合mybatis-plus,实现简单的用户CRUD操作,直接开始吧。准备环境系统:Win10开发工具:IntellIJ IDEA 2019.3Java版本:open jdk1.8项目管理工具:Maven新建项目此次以多模块管理,根目录下的pom.xml负责依赖版本管理,Modules需要哪些依赖直接在Module下的pom.xml引入即可,不用再重复管理版本号了。新建好项目后
转载 7月前
125阅读
目录:   1. pom.xml<?xml version="1.0" encoding="UTF-8"?> <project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
转载 3天前
316阅读
一、mybatis-plus是什么?MyBatis-Plus(简称 MP)是一个 MyBatis 的增强工具,在 MyBatis 的基础上只做增强不做改变,为简化开发、提高效率而生。 官网:http://mp.baomidou.com/ 参考教程:http://mp.baomidou.com/guide/二、mybatis-plus的特性无侵入:只做增强不做改变,引入它不会对现有工程产生影响,如丝
转载 2024-09-26 19:32:54
115阅读
1.批量修改字段一表示要修改的字段字段二、字段三表示根据什么来进行修改 UPDATE 表名 SET 字段一 = CASE 字段二 WHEN 1 THEN 10 WHEN 2 THEN 35 WHEN 3 THEN 35 END WHERE 字段三=2 AND 字段二 in (1,2,3); 2.批量修改多个字段 字
Mybatis Plus BaseMapper 方法
原创 2022-03-23 15:02:33
324阅读
Mybatis中Mapper.xml详解SQL 映射文件只有很少的的几个(按照被定义的顺序列出)cache - 对给定命名空间的缓存配置cache-ref - 对给定的命名空间缓存配置的引用resultMap - 是最复杂也是最强大的元素,用来描述如何从数据库结果集中来加载对象sql - 可被其他语句引用的可重用语句块insert - 映射插入语句update - 映射更新语句delete - 映
转载 2024-10-30 12:45:56
49阅读
MyBatis是什么MyBatis是什么?它是apache下的一个开源项目名叫iBatis,然而到2010年时候这个项目被迁移到Google Code下并改名为MyBatis,而今在国内比较流行。而MyBatis它是一个基于Java的持久层框架的,且内部封装了 JDBC,这使开发者只需要关注 sql 语句本身, 而不需要花费精力去处理加载驱动、创建连接、创建 statement 等等这么繁琐的过程
转载 9月前
16阅读
文章目录加载过程1、加载时机:项目启动实例化SqlSessionFactory时2、加载处理过程循环加载、处理每个XML Mapper1、加载的内容2、对被加载内容的处理过程1、解析待处理结果集2、解析待处理缓存引用3、==解析待处理语句==注意点SQL片段内,使用Include标签时,refid需指定被调用SQL片段的全限定名称(namespace.id) 加载过程1、加载时机:项目启动实例化
转载 2024-10-18 09:01:41
214阅读
目录一、Mybatis-plus概述1、简介2、特性3、支持数据库4、框架结构二、Mybatis-plus快速上手1、创建Maven工程2、pom.xml 引⼊ MyBatis Plus 的依赖3、创建实体类4、创建Mapper接口5、配置application.yml文件中的数据库链接6、启动类需要添加 @MapperScan("mapper所在的包"),否则⽆法加载 Mppaer bean。7
转载 2024-09-05 09:34:26
188阅读
Mybatis-Plus学习一、简介MyBatis-Plus(简称 MP)是一个 MyBatis 的增强工具,在 MyBatis 的基础上只做增强不做改变,为简化开发、提高效率而生。润物无声只做增强不做改变,引入它不会对现有工程产生影响,如丝般顺滑。效率至上只需简单配置,即可快速进行 CRUD 操作,从而节省大量时间。丰富功能热加载、代码生成、分页、性能分析等功能一应俱全。二、创建并初始化数据库2
原创 2021-06-21 16:29:48
252阅读
web项目开发中目前很多企业都是在SSM框架基础上开发。其中的M指的的mybatis(ibatis).mybatis里指的一说的是规避了传统的jdbc等的繁琐。在mybatis中我们可以只用关注sql本身。而不用太在意之个执行过程。大大简化了我们平时的开发。mybatis深究的话会有很多要说的。今天我们只来看看mybatis中提供了映射中的关联标签。<!-- more -->数据准备数
转载 10月前
43阅读
MyBatis 是一种持久层框架,介于 JDBC 和 Hibernate 之间。通过 MyBatis 减少了手写 SQL 语句的痛苦,使用者可以灵活使用 SQL 语句,支持高级映射。但是 MyBatis 的推出不是只是为了安全问题,有很多开发认为使用了 MyBatis 就不会存在 SQL 注入了,真的是这样吗?使用了 MyBatis 就不会有 SQL 注入了吗?答案很明显是 NO。MyBat
背景由于项目中需要大批量将数据插入数据库,直接使用mybatis-plus中的批量插入方法,结果发现效率奇低无比,线上批量插入一千条数据居然花销八九秒的时间。而我们的目标是想要单次插入一万条数据,这样的效率完全无法接受。问题追踪mybatis-plus的源码IService中是有单次批量插入的大小,默认的DEFAULT_BATCH_SIZE=1000,可以看到很多批量方法里面都有设置;通过修改调用
转载 11月前
393阅读
  • 1
  • 2
  • 3
  • 4
  • 5