- 在日常的开发工作中,处理数据库查询是一个非常常见的任务,尤其是当我们需要在复杂条件下筛选数据时,如何编写高效、简洁且可维护的查询逻辑显得尤为重要。 场景描述假设我们正在开发一个邮件系统,系统中有一个名为 MailInfo 的表,用于存储邮件信息。该表有两个字段与用户相关:user_id 表示邮件的发送者,to_user_id 表示邮件的接收者。我们需要编写一个查询,找出当前用户(userId... 在日常的开发工作中,处理数据库查询是一个非常常见的任务,尤其是当我们需要在复杂条件下筛选数据时,如何编写高效、简洁且可维护的查询逻辑显得尤为重要。 场景描述假设我们正在开发一个邮件系统,系统中有一个名为 MailInfo 的表,用于存储邮件信息。该表有两个字段与用户相关:user_id 表示邮件的发送者,to_user_id 表示邮件的接收者。我们需要编写一个查询,找出当前用户(userId...
- 随着互联网的发展,越来越多的公司摒弃了Hibernate,而选择拥抱了MyBatis。而且,很多大厂在面试的时候喜欢问MyBatis底层的原理和源码实现。总之,MyBatis几乎成为了Java开发人员必须深入掌握的框架技术,今天,我们就一起来深入分析MyBatis源码。文章有点长,建议先收藏后慢慢研究。整体三万字左右,全程高能,小伙伴们可慢慢研究。 随着互联网的发展,越来越多的公司摒弃了Hibernate,而选择拥抱了MyBatis。而且,很多大厂在面试的时候喜欢问MyBatis底层的原理和源码实现。总之,MyBatis几乎成为了Java开发人员必须深入掌握的框架技术,今天,我们就一起来深入分析MyBatis源码。文章有点长,建议先收藏后慢慢研究。整体三万字左右,全程高能,小伙伴们可慢慢研究。
- 如何在mapper中编写多个MySQL语句在使用MyBatis进行数据库操作时,我们常常需要在mapper接口中编写多个MySQL语句以满足不同的需求。本文将介绍如何在mapper中正确地编写多个MySQL语句。步骤一:创建mapper接口首先,我们需要创建一个Java接口作为mapper接口,用于定义与数据库交互的方法。public interface UserMapper { Us... 如何在mapper中编写多个MySQL语句在使用MyBatis进行数据库操作时,我们常常需要在mapper接口中编写多个MySQL语句以满足不同的需求。本文将介绍如何在mapper中正确地编写多个MySQL语句。步骤一:创建mapper接口首先,我们需要创建一个Java接口作为mapper接口,用于定义与数据库交互的方法。public interface UserMapper { Us...
- 随着互联网的发展,越来越多的公司摒弃了Hibernate,而选择拥抱了MyBatis。而且,很多大厂在面试的时候喜欢问MyBatis底层的原理和源码实现。总之,MyBatis几乎成为了Java开发人员必须深入掌握的框架技术,今天,我们就一起来深入分析MyBatis源码。文章有点长,建议先收藏后慢慢研究。整体三万字左右,全程高能,小伙伴们可慢慢研究。 随着互联网的发展,越来越多的公司摒弃了Hibernate,而选择拥抱了MyBatis。而且,很多大厂在面试的时候喜欢问MyBatis底层的原理和源码实现。总之,MyBatis几乎成为了Java开发人员必须深入掌握的框架技术,今天,我们就一起来深入分析MyBatis源码。文章有点长,建议先收藏后慢慢研究。整体三万字左右,全程高能,小伙伴们可慢慢研究。
- 前言从Mybatis搭建到各种配置和注解,带你快速学会MyBatis。 一、📖MyBatis简介 1.Mybatis历史MyBatis最初是Apache的一个开源项目iBatis, 2010年6月这个项目由Apache Software Foundation迁移到了Google Code。随着开发团队转投Google Code旗下,iBatis3.x正式更名为MyBatis。代码于201... 前言从Mybatis搭建到各种配置和注解,带你快速学会MyBatis。 一、📖MyBatis简介 1.Mybatis历史MyBatis最初是Apache的一个开源项目iBatis, 2010年6月这个项目由Apache Software Foundation迁移到了Google Code。随着开发团队转投Google Code旗下,iBatis3.x正式更名为MyBatis。代码于201...
- 配置文件实现CRUD查询查询所有数据查询详情条件查询添加修改修改全部字段修改动态字段删除删除一个批量删除 环境准备数据库表(tb_brand)及数据准备-- 删除tb_brand表drop table if exists tb_brand;-- 创建tb_brand表create table tb_brand( -- id 主键 id int primary... 配置文件实现CRUD查询查询所有数据查询详情条件查询添加修改修改全部字段修改动态字段删除删除一个批量删除 环境准备数据库表(tb_brand)及数据准备-- 删除tb_brand表drop table if exists tb_brand;-- 创建tb_brand表create table tb_brand( -- id 主键 id int primary...
- 一、Mybatis简介 1、什么是MyBatis?MyBatis 是一款优秀的持久层框架MyBatis 避免了几乎所有的 JDBC 代码和手动设置参数以及获取结果集的过程MyBatis 可以使用简单的 XML 或注解来配置和映射原生信息,将接口和 Java 的 实体类 【Plain Old Java Objects,普通的 Java对象】映射成数据库中的记录。Mybatis官方文档 : ... 一、Mybatis简介 1、什么是MyBatis?MyBatis 是一款优秀的持久层框架MyBatis 避免了几乎所有的 JDBC 代码和手动设置参数以及获取结果集的过程MyBatis 可以使用简单的 XML 或注解来配置和映射原生信息,将接口和 Java 的 实体类 【Plain Old Java Objects,普通的 Java对象】映射成数据库中的记录。Mybatis官方文档 : ...
- 文章目录前言一、📖MyBatis简介1.Mybatis历史2.MyBatis特性3.对比(其他持久化层技术)二、📣搭建MyBatis1.开发环境2.创建maven工程3.创建MyBatis核心配置文件4.创建mapper接口5.创建MyBatis的映射文件6.通过junit测试功能7.加入log4j日志功能8.核心配置文件详解三、📝MyBatis的增删改查(映射文件)四、📝MyBat... 文章目录前言一、📖MyBatis简介1.Mybatis历史2.MyBatis特性3.对比(其他持久化层技术)二、📣搭建MyBatis1.开发环境2.创建maven工程3.创建MyBatis核心配置文件4.创建mapper接口5.创建MyBatis的映射文件6.通过junit测试功能7.加入log4j日志功能8.核心配置文件详解三、📝MyBatis的增删改查(映射文件)四、📝MyBat...
- 前言上次我们在说mybatis 的 plugin 功能的时候,提到了其可作用于myBatis 的四大组件,也放了一个基础的模型图,但是对于这四大组件更具体的功能和原理:却没有进一步说明,今天就来完成这项工作一、四大组件的用途先来看一张图mybatis的类引用图,然后我们再详细解释二、Executor1. Executor接口方法我们现浏览下Executor 接口都提供了什么方法:public... 前言上次我们在说mybatis 的 plugin 功能的时候,提到了其可作用于myBatis 的四大组件,也放了一个基础的模型图,但是对于这四大组件更具体的功能和原理:却没有进一步说明,今天就来完成这项工作一、四大组件的用途先来看一张图mybatis的类引用图,然后我们再详细解释二、Executor1. Executor接口方法我们现浏览下Executor 接口都提供了什么方法:public...
- 前言本文我们将讲解Mybatis的动态sql是什么,以及如何解析,最终执行的全流程一、MyBatis的Sql类型1. 静态SQLmybatis 静态sql 在编译期就已经确定其样子,就是可直接执行,或者填入参数即可执行的,如SELECT * FROM users WHERE username = 'admin' AND password = #{password};这种静态的sql在程序启动... 前言本文我们将讲解Mybatis的动态sql是什么,以及如何解析,最终执行的全流程一、MyBatis的Sql类型1. 静态SQLmybatis 静态sql 在编译期就已经确定其样子,就是可直接执行,或者填入参数即可执行的,如SELECT * FROM users WHERE username = 'admin' AND password = #{password};这种静态的sql在程序启动...
- 前言上次我们讲Mybatis的缓存时,我们提到了CachingExecutor,知道了这个带缓存的执行器就是二级缓存的来源,这次我们系统的分析下其是如何产生作用的一、CachingExecutor的在逻辑定位1. 流程图中的位置我把CachingExecutor在逻辑链路中的位置标出来了,就是储存在会话对象中,通过会话可使用到CachingExecutor,而CachingExecutor又... 前言上次我们讲Mybatis的缓存时,我们提到了CachingExecutor,知道了这个带缓存的执行器就是二级缓存的来源,这次我们系统的分析下其是如何产生作用的一、CachingExecutor的在逻辑定位1. 流程图中的位置我把CachingExecutor在逻辑链路中的位置标出来了,就是储存在会话对象中,通过会话可使用到CachingExecutor,而CachingExecutor又...
- 前言提示:自从上次发现mybatis缓存可被修改后,就一直想针对myBatis缓存单独做一期分析,包含其原理和运行方式,现在终于得空来详细写一篇了一、MyBatis的两级缓存介绍熟悉MyBatis的应该知道,MyBatis内置了两级缓存,会在查询数据库时,将查询结果缓存到内存中,以便下次查询时可以直接从缓存中获取数据,从而提高数据查询效率MyBatis缓存一般分为一级缓存和二级缓存。一级缓存... 前言提示:自从上次发现mybatis缓存可被修改后,就一直想针对myBatis缓存单独做一期分析,包含其原理和运行方式,现在终于得空来详细写一篇了一、MyBatis的两级缓存介绍熟悉MyBatis的应该知道,MyBatis内置了两级缓存,会在查询数据库时,将查询结果缓存到内存中,以便下次查询时可以直接从缓存中获取数据,从而提高数据查询效率MyBatis缓存一般分为一级缓存和二级缓存。一级缓存...
- 前言上次,我们说过了mybatis+springboot时的启动与执行流程,也介绍过mybatis的执行器和缓存,今天,我们来看看mybatis 的另一个大功能 —— plugin一、Mybatis Plugin 是什么MyBatis的plugin插件是用来拦截SQL执行的,对SQL进行增强的一种机制。MyBatis的Plugin实现基于JDK动态代理机制,在MyBatis初始化过程中,可以... 前言上次,我们说过了mybatis+springboot时的启动与执行流程,也介绍过mybatis的执行器和缓存,今天,我们来看看mybatis 的另一个大功能 —— plugin一、Mybatis Plugin 是什么MyBatis的plugin插件是用来拦截SQL执行的,对SQL进行增强的一种机制。MyBatis的Plugin实现基于JDK动态代理机制,在MyBatis初始化过程中,可以...
- 在我们开发一些具有综合功能的项目时,往往会碰到一种情况,需要同时连接多个数据库,这个时候就需要用到多数据源的设计。而Spring 与 Myabtis 其实做了多数据源的适配,只需少许改动即可对接多数据源。本期我们就贴近实战,以一个单数据源的Demo为例,讲述将其改为多数据源项目的过程,希望大家能有所体会一、数据源的定义数据源(Data Source)是指数据存储的地方,大多数情况是指数据库,... 在我们开发一些具有综合功能的项目时,往往会碰到一种情况,需要同时连接多个数据库,这个时候就需要用到多数据源的设计。而Spring 与 Myabtis 其实做了多数据源的适配,只需少许改动即可对接多数据源。本期我们就贴近实战,以一个单数据源的Demo为例,讲述将其改为多数据源项目的过程,希望大家能有所体会一、数据源的定义数据源(Data Source)是指数据存储的地方,大多数情况是指数据库,...
- 使用MyBatis,或者MyBatis-plus,有一项重要的开发技能就是写动态sql,动态sql能帮我们省略很多复杂逻辑,也能帮我们解决一些格式问题,所以今天我们就来帮大家掌握这个动态sql一、动态sql是什么?假设有一个电商网站,需要根据用户提供的不同条件查询商品信息,比如说价格、商品名、类别等等,我们需要写出每个查询信息对应的SQL语句,例如SELECT * FROM Product ... 使用MyBatis,或者MyBatis-plus,有一项重要的开发技能就是写动态sql,动态sql能帮我们省略很多复杂逻辑,也能帮我们解决一些格式问题,所以今天我们就来帮大家掌握这个动态sql一、动态sql是什么?假设有一个电商网站,需要根据用户提供的不同条件查询商品信息,比如说价格、商品名、类别等等,我们需要写出每个查询信息对应的SQL语句,例如SELECT * FROM Product ...
上滑加载中
推荐直播
-
GaussDB管理平台TPOPS,DBA高效运维的一站式解决方案
2024/12/24 周二 16:30-18:00
Leo 华为云数据库DTSE技术布道师
数据库的复杂运维,是否让你感到头疼不已?今天,华为云GaussDB管理平台将彻底来改观!本期直播,我们将深入探索GaussDB管理平台的TPOPS功能,带你感受一键式部署安装的便捷,和智能化运维管理的高效,让复杂的运维、管理变得简单,让简单变得可靠。
回顾中 -
走进数据库:数据库基础知识精讲
2024/12/27 周五 16:00-17:30
Steven 华为云学堂技术讲师
数据管理是数据库的核心任务,本期直播将带领大家一起走进数据库,了解期发展趋势、基础模型、架构演进及相关的技术特点。同时还会介绍数据库对象和相关概念,帮助开发者对数据库使用和实践夯实基础。
去报名
热门标签