
mybatis
文章平均质量分 92
MyBatis 是一款优秀的持久层框架,它支持定制化 SQL、存储过程以及高级映射。MyBatis 可以使用简单的 XML 或注解来配置和映射原生信息,将接口和 Java 的 POJOs(Plain Ordinary Java Object,普通的 Java对象)映射成数据库中的记录。
赵广陆
优快云认证博客专家、优快云的Java领域优质创作者、全网30w+粉丝、超300w访问量、专注于大学生项目实战开发、讲解和答疑辅导、以及产品测评宣传、工具推广等合作。同时招收学生代理、校园代理,对于专业性数据证明一切!
展开
-
Mybatis的mapper接口实现原理
目录1 概述2 动态代理和反射对象3 源码分析4 总结1 概述为啥mybatis的mapper只有接口没有实现类,但它却能工作?说起mybatis,大伙应该都用过,有些人甚至底层源码都看过了。在mybatis中,mapper接口是没有实现类的,取而代之的是一个xml文件。也就是说我们调用mapper接口,其实是使用了mapper.xml中定义sql完成数据操作。原创 2023-09-15 21:39:51 · 1149 阅读 · 0 评论 -
MyBatis原理分析手写持久层框架
目录1 JDBC操作数据库问题分析2 JDBC问题分析和解决思路3 自定义持久层框架_思路分析3.1 使用JDBC和使用持久层框架区别3.2 核心接口/类重点说明3.3 项目使用端3.4 自定义框架本身3.5 最终手写的持久层框架结构参考4 自定义持久层框架_编码5 自定义持久层框架优化原创 2023-09-09 12:12:26 · 402 阅读 · 0 评论 -
Mybatis中实现动态SQL
目录1 背景2 if判断2 choose(when,otherwise)选择分支进入3 where4 set5 trim6 foreach循环遍历7 小结不建议使用,但是有些需求又不得不用回来温习下。动态SQL语句,也就意味着SQL语句不在是一成不变的而是具有多样性.原创 2023-08-26 12:53:46 · 204 阅读 · 0 评论 -
Mybatis-plus@DS实现动态切换数据源应用
目录1 @DS实现动态切换数据源原理2 不可在事务中切换数据库分析解决3 原因解析1 @DS实现动态切换数据源原理首先mybatis-plus使用com.baomidou.dynamic.datasource.AbstractRoutingDataSource继承 AbstractDataSource接管数据源;具体实现类为com.baomidou.dynamic.datasource.DynamicRoutingDataSource。原创 2023-02-14 22:45:37 · 4251 阅读 · 0 评论 -
Mybatis-Plus实现公共字段自动赋值
目录1 mybatis-plus实现自动填充指定字段1.1 需要修改的字段在模型类上添加1.2 新建一个MetaObjectHandler的实现类2 通用字段自动填充的最佳实践总结2.1 调整数据库表结构2.2 通用维护信息父类-自动赋值的字段2.3 实体类的实现2.4 自动赋值的规则2.5 实现效果1 mybatis-plus实现自动填充指定字段首先了解MetaObjectHandler MetaObjectHandler接口是mybatisPlus为我们提供的的一个扩展接口...原创 2022-07-03 15:38:33 · 1197 阅读 · 0 评论 -
MyBatis核心源码深度剖析SQL执行过程
目录1 SQL语句的执行过程介绍2 SQL执行的入口分析2.1 为Mapper接口创建代理对象2.2 执行代理逻辑3 查询语句的执行过程分析3.1 selectOne方法分析3.2 sql获取3.3 参数设置3.4 SQL执行和结果集的封装4 更新语句的执行过程分析4.1 sqlsession增删改方法分析4.2 sql获取4.3 参数设置4.4 SQL执行5 小结1 SQL语句的执行过程介绍MyBatis核心执行组件:2 SQL执行的入口分析2.1 为Mapper接口创建代理对象// 方式1:原创 2022-05-20 09:09:21 · 500 阅读 · 0 评论 -
MyBatis核心源码深度剖析核心执行器executor和缓存原理
目录1 JDBC回顾2 MyBatis的核心执行组件介绍2.1 SqlSession2.2 Executor2.3 StatementHandler3 Executor执行器分析3.1 JDBC中的执行器3.2 Mybatis执行器3.2.1 Executor接口3.2.2 BaseExecutor(基础执行器)3.2.3 SimpleExecutor(简单执行器)3.2.4 ReuseExecutor(可重用执行器)3.2.5 BatchExecutor(批处理执行器)3.2.6 CachingExecu原创 2022-05-19 10:10:02 · 491 阅读 · 0 评论 -
MyBatis核心源码深度剖析工作机制和实现原理
目录1 MyBatis源码分析导入1.1 为什么要看MyBatis框架的源码1.2 如何深入学习MyBatis源码1.3 源码分析的5大原则2 MyBatis架构体系深入剖析2.1 MyBatis的整体架构体系2.2 MyBatis的工作机制和实现原理2.2.1 接口层2.2.1.1 获取SqlSession流程分析2.2.1.2 SqlSession源码分析2.2.2 数据处理核心层2.2.2.1 配置解析(参数映射)2.2.2.2 SQL解析(SqlSource)2.2.2.3 SQL执行(Execut原创 2022-05-17 22:00:00 · 1122 阅读 · 0 评论 -
Mybatis-Plus select不去查全部字段和去重
目录1 mybatis-plus select查询语句默认是查全部字段,有两种方法可以指定要查询的字段2 Mybatis plus实现Distinct去重功能3 Mybatis plus实现in操作4 mybatis 转义对照表原创 2021-06-25 23:13:48 · 15042 阅读 · 0 评论 -
PageHelper的深入了解
基本使用: PageHelper.startPage(1, 10); Example example = new Example(Employee.class); example.createCriteria().andEqualTo("employeeSex", "男"); List<Employee> list = employeeTKMapper.selectByExample(example); PageInfo<原创 2021-06-12 12:33:40 · 936 阅读 · 2 评论 -
MybatisPlus联合查询
目录1、什么是Mybatis-plus-join?2、下载Mybatis-plus-join3、离线版请使用Maven将其打包成jar包3.1、使用idea打包4.项目中引用Mybatis-plus-join的pom.xml配置5、在业务中使用mybatis-plus-join的准备使用核心类 MPJLambdaWrapper和MPJQueryWrapperMPJLambdaWrapper用法MPJLambdaWrapper示例简单的3表查询分页查询MPJQueryWrapper简单的3表查询分页查询还可以原创 2021-05-23 19:49:01 · 32421 阅读 · 3 评论 -
Mybatis配置文件之<settings>属性配置元素解析
目录1 概述2 settings配置属性3 一个配置完整的 settings 元素的示例如下:1 概述设置元素在mybatis中最为复杂,同时也是最为重要的配置之一。它会改变mybatis运行时的行为,即使不配置settings元素,mybatis也可以正常运行,不过了解settings的配置内容,对于使用mybatis来说百利而无一害。2 settings配置属性这是 MyBatis 中极为重要的调整设置,它们会改变 MyBatis 的运行时行为。下表描述了设置中各项的意图、默认值等。原创 2020-12-26 14:15:53 · 5065 阅读 · 0 评论 -
MybatisPlus快速入门
目录1. 概述2. 快速入门2.1 数据库环境准备2.2 创建SpringBoot工程,引入MyBatis-Plus起步依赖2.3 编写DataSource相关配置2.4 编码2.5 测试3. CRUD3.1 添加3.1.1 方法解析3.1.2 测试3.1.3 说明1, 实体类上的注解 @TableField3.1.4 说明2, 配置3.1.5 具体使用如下3.2 删除3.2.1 根据id删除3.2.1 根据id集合批量删除3.2.1 根据map构造条件,删除3.3 更新4 查询4.1 分页查询4.原创 2020-12-24 12:22:04 · 1374 阅读 · 1 评论 -
Mybatis使用注解方式配置
目录1 介绍2 初始化工程2.1 导包2.2 导配置3 使用注解增删改查3.1 环境准备3.1.1 建库建表3.1.2 创建Student实体类3.1.3 创建StudentDao接口3.1.4 配置映射关系3.2 查询演示3.3 新增演示3.4 修改演示3.5 删除演示3.6 #{}与${}的区别4 SQL功能类4.1 介绍4.2 环境搭建4.2.1 创建表4.2.2 创建实体类4.2.3 定义UserSQL功能类4.2.4 定义UserDao接口4.3 查询@SelectProvider4.3.1 普通原创 2020-12-04 17:43:10 · 4499 阅读 · 0 评论 -
PageHelper分页插件的使用
目录1 分页插件介绍2 分页插件的使用3 分页插件的参数获取4 分页插件知识小结5 分页插件的使用第一步:导分页jar包第二步: 集成分页助手插件第三步:添加查询全部功能第四步:测试类中使用分页查看结果分页的业务层代码1 分页插件介绍分页可以将很多条结果进行分页显示。如果当前在第一页,则没有上一页。如果当前在最后一页,则没有下一页。需要明确当前是第几页,这一页中显示多少条结果。MyBatis分页插件总结在企业级开发中,分页也是一种常见的技术。而目前使用的 MyBatis 是不带分页原创 2020-12-01 23:32:12 · 1110 阅读 · 0 评论 -
Mybatis使用xml方式配置
目录1 Mybatis快速入门1.1 框架介绍1.2 ORM介绍1.3 原始jdbc操作(查询数据)1.4原始jdbc操作(插入数据)1.5 原始jdbc操作的分析1.6 什么是Mybatis2 入门案例2.1 目标第一步:创建数据库表第二步:导入jar包第三步:创建实体类第四步:创建mybatis配置文件第五步:编写测试类3 映射文件介绍4 主配置文件介绍4.1 environments标签4.2 mapper标签4.3 properties标签4.3.1 介绍4.3.2 使用步骤4.4 typeAlia原创 2020-12-01 22:52:55 · 743 阅读 · 0 评论 -
Mybatis的多表查询操作
目录1 mybatis多表查询XML方式1.1 一对一查询1.1.1 表关系1.1.2 需求1.1.3 实现步骤第一步:建表第二步:创建实体类第三步:创建Dao接口第四步:创建映射文件第五步:主配置导入映射文件第六步:编写测试方法1.1.4 小结1.2 一对多查询1.2.1 表关系1.2.2 需求1.2.3 实现步骤第一步:建表第二步:创建实体类第三步:创建Dao接口第四步:创建映射文件第五步:主配置导入映射文件第六步:编写测试方法1.2.4 小结1.3 多对多关系1.3.1 表关系1.3.2 需求1.3.原创 2020-07-21 17:43:25 · 1029 阅读 · 0 评论 -
Mybatis的dao层实现原理
目录1.Mybatis的Dao层实现1.1 传统开发方式1.1.1编写UserDao接口1.1.2.编写UserDaoImpl实现1.1.3 测试传统方式1.2 代理开发方式1.2.1 代理开发方式介绍1.2.2 编写UserMapper接口1.2.3测试代理方式1.3 知识小结2.MyBatis映射文件深入2.1 动态sql语句2.1.1动态sql语句概述2.1.2动态 SQL 之<**if>**2.1.3 动态 SQL 之<**foreach>**2.2 SQL片段抽取2.3原创 2020-07-21 17:33:28 · 944 阅读 · 0 评论 -
Mybatis快速入门
目录1.Mybatis简介1.1原始jdbc操作(查询数据)1.2原始jdbc操作(插入数据)1.3 原始jdbc操作的分析1.4 什么是Mybatis2.Mybatis的快速入门2.1 MyBatis开发步骤2.2 环境搭建2.3 编写测试代码2.4 知识小结3. MyBatis的映射文件概述4. MyBatis的增删改查操作4.1 MyBatis的插入数据操作4.2 MyBatis的修改数据操作4.3 MyBatis的删除数据操作4.4 知识小结5. MyBatis核心配置文件概述5.1 MyBatis原创 2020-07-21 17:26:29 · 661 阅读 · 0 评论 -
统一日志的处理Slf4j,log4j,logback
目录1 日志1.1 什么是日志1.2 配置日志级别2 log4j 简介2.1日志级别2.1.1 FATAL2.1.2 ERROR2.1.3 WARN2.1.4 INFO2.1.5 DEBUG3 log4j 的使用3.1 导包3.2 配置文件放到src目录下(方便加载,其他目录也可)3.3 日志的输出格式3.4 测试代码4 MyBatis 对 log4j 的支持4.1 通过开启 log4j 的支持4.2 日志配置文件区域选择:5 ..原创 2020-05-04 12:42:58 · 871 阅读 · 0 评论 -
MyBatis映射文件与核心配置文件
1. Mapper 映射文件 在 MyBatis 中, 推荐使用 mapper 作为包名, 我们只需要写 一个映射配置文件即可. UserMapper.xml, 用于定义要执行 的 SQL 语句, 同时设定返回结果的类型.<?xml version="1.0" encoding="UTF-8"?><!DOCTYPE mapper PUBLIC "-//m...原创 2020-05-03 23:17:10 · 1455 阅读 · 0 评论 -
MyBatis介绍与环境搭建
目录1. 什么是框架2 常见的 java 开发的框架3 MyBatis 框架简介4 MyBatis 环境搭建 jar 包详解4.1 创建项目4.2 导入 jar 包4.2.1 MyBatis 核心 jar4.2.2 MyBatis 依赖的 jar4.2.3 驱动 jar1. 什么是框架 框架是偷懒的程序员将代码进行封装, 之后进行重复使用的过程. 框...原创 2020-05-03 11:54:48 · 632 阅读 · 0 评论 -
mybatis逆向工程与分页插件
目录1 分页处理2 分页插件PageHelper2.1 使用方法3 分页测试4 测试结果:1 分页处理逆向工程生成的代码是不支持分页处理的,如果想进行分页需要自己编写mapper,这样就失去逆向工程的意义了。为了提高开发效率可以使用mybatis的分页插件PageHelper。2 分页插件PageHelperMybatis分页插件 - PageHelper说...原创 2020-03-30 13:56:45 · 684 阅读 · 0 评论 -
mysql数据库还原与Mybatis的逆向工程
目录1 mysql数据库还原1.1 新建数据库1.2 运行sql文件1.3 成功1.4 刷新查看2 Mybatis的逆向工程2.1 MyBatis Generator 介绍2.1.1 官网地址2.1.2 下载地址2.1.3Mybatis Generator 介绍3 Mybatis Generator 的使用3.1 建立 MybatisGener...原创 2020-03-16 12:10:14 · 981 阅读 · 0 评论