文章目录1.多表查询1.1、多对一查询1.2、一对多查询2.动态Sql2.1、IF2.2、Choose(when,otherwise)2.3、TRIM(where,set)2.4、sql片段的抽取和使用2.5、Foreach3.缓存(了解)3.1、简介3.2、Mybatis缓存3.3、一级缓存3.4、二级缓存3.5、缓存原理3.6、自定义缓存-ehcache 教师和学生的关系图: 1.多表查询1
Mybatis的一个插件,PageHelper,非常方便mybatis分页查询。国内牛人的一个开源项目,有兴趣的可以去看源码,都有中文注释(ps:某些源码一大堆英文,痛哭流涕!)在github上仓库地址为:Mybatis-PageHelper它支持基本主流与常用的数据库,这可以在它的文档上看到。这里记录一下使用的基本方法0.查看文档与使用准备开发文档有中文文档也有英文文档PageHelper官方文
转载
2024-06-17 15:25:48
149阅读
超级通道:MyBatis代码实例系列-绪论本章主要记录MyBatis通过PageHelper插件实现分页查询,涉及到的技术点有: - com.github.pagehelper:开源的MyBatis分页插件com.github.pagehelper是一款开源的MyBatis分页插件,地址是:https://github.com/pagehelper/Mybatis-PageHelper1.SQL
转载
2024-03-29 13:40:08
96阅读
于是在GitHub上找到了一个不错的demo,直接看demo搭建自己的项目了,这里记录下在搭建过程中学习到的和遇到的问题。先说说这个项目吧,项目结构,配置等非常精简,对于新手的我来说还是比较容易上手的,对于学习和开发很有帮助,给作者点赞。在此基础上做了点满足自身需求的改动,同时加入了swagger,顺利的搭建了一套服务。代码自动生成底层服务有很多通用的CRUD,利用代码生成最好不过了,这里作者将代
Mapper的CRUD接口3:分页查询1、添加配置MyBatis-Plus 提供了物理分页的功能,使用前我们需要要进行相关的插件配置:逻辑分页与物理分页比较:逻辑分页:内存开销比较大,在数据量比较小的情况下效率比物理分页高;在数据量很大的情况下,内存开销过大,容易内存溢出,不建议使用。物理分页:内存开销比较小,在数据量比较小的情况下效率比逻辑分页还是低;在数据量很大的情况下,建议使用物理分页。@E
转载
2024-03-29 13:34:20
166阅读
什么是通用mapper? 通用mapper 可以极大的方便开发人员进行ORM,提供极其方便的单表增删改查。 什么是通用mapper,一句话简单说,它就是个辅助mybatis极简单表开发的组件。它不是为了替代mybatis,而是让mybatis的开发更方便。 可以按照自己的需要选择通用方法,还能很方便的开发自己的通用方法。通用Mapper的优点方便 极大的方便开发人员。可以随意的按照自己的需要选择通
一、MyBatis-Plus的基本操作(BaseMapper)注:此测试运行于springboot环境中新建UserMaper.java接口,并继承 mybatis-plus的BaseMapper:public interface UserMapper extends BaseMapper<User> {
}在测试中自动注入UserMapper。@Autowired
private U
转载
2024-02-19 12:32:40
90阅读
MyBatisPlus的分页分析写在前面快速使用内置分页插件分析总结 写在前面由于目前的开发使用的ORM框架是MyBatis,作为一款优秀的半自动化ORM映射框架,Mybatis提供了灵活的sql语句的编写方式,但是过于灵活也使得所有的语句都需要自定义编写,例如通用的CURD操作也要从头编写一遍实际上从这一方面来看也会降低开发效率。而MyBatis-Plus就是为了简化Mybatis而生的。从名
转载
2024-04-11 10:26:53
559阅读
一、前言 本人使用mybatis也有些年头了。对于mybatis的使用也有点个人的心得。个人感觉mybatis在使用起来比hibernate方便且轻量级,这也是我喜欢使用mybatis的原因之一。但是每次在过了一段时间之后就会出现mybatis的xml文件里面的sql语句越来越多,看起来也不是十分美观,也不是很方便。在之前我也试过建立通用的BaseMapper来
转载
2024-04-12 04:28:33
715阅读
一、简介 PageHelper是国内非常优秀的一款开源的mybatis分页插件,它支持基本主流与常用的数据库,例 如mysql、oracle、mariaDB、DB2、SQLite、Hsqldb等。 本项目在 github 的项目地址:https://github.com/pagehelper/Mybatis-PageHelper 本项目在 gitosc 的项目地址:二、依赖导入 2.1引入 Jar
转载
2024-10-08 22:51:16
143阅读
目录Spring+Mybatis + Mybatis-Plus 自定义无XML的sql生成及MapperProxy代理生成问题产生背景框架是如何使用无Xml的SQL是如何生成生成及SQL长成什么样MapperProxy代理生成总结Spring+Mybatis + Mybatis-Plus 自定义无XML的sql生成及MapperProxy代理生成问题产生背景现在新服务ORM框架是使用mybatis
转载
2024-08-28 17:47:56
119阅读
1.PageHelper简述 MyBatis 分页插件 PageHelper 如果你也在用 MyBatis,建议尝试该分页插件,这一定是最方便使用的分页插件。分页插件支持任何复杂的单表、多表分页。 以上是PageHelper官网地址和首页的截图,网站上面有详细的官方文档,以及使用步骤等等,不做过
转载
2024-08-21 13:47:37
141阅读
Mybatis通配符、Mybatis和SQL的模糊查询一、mybatis中的$与#二、Mybatis各种模糊查询1. sql中字符串拼接2.使用 ${...} 代替 #{...}3.程序中拼接4. 大小写匹配查询三、MySql 模糊查询 一、mybatis中的$与#在mybatis中的$与#都是在sql中动态的传入参数。select id,name,age from student where
需求:数据库的增删查改思路一:直接利用注解传递参数查询在接口的方法的参数前加上@Param属性sql语句编写的时候,直接取@Param设置的值即可,不需要单独设置参数类型。sql类型的主要分成:@Select() @Update() @Insert() @Delete()public interface TeacherMapper {
@Select("select * from teacher
转载
2024-07-23 13:52:26
85阅读
MyBatis-Plus 简介MyBatis-Plus(简称 MP)是一个 MyBatis 的增强工具,在 MyBatis 的基础上只做增强不做改变,为简化开发、提高效率而生。一、创建springboot + mybatis-plus 项目添加测试表及数据-- 建测试表
DROP TABLE IF EXISTS user;
CREATE TABLE user
(
id BIGINT(20) N
转载
2024-07-15 20:16:57
96阅读
mybatis最新版本(此处以3.4.1版本为分析对象)与ibatis时代相比最大的进步就是引入repository/dao层的接口设计,即不再需要由开发者去实现重复的样板式的dao层代码了,开发者只需要定义dao层接口以及mybatis sql xml映射文件或者annotation注解,由mybatis自动实现dao层的功能,那么这个过程的原理是怎样的?底层是怎样实现的? 分析my
项目中mybatis分页的场景是非常高频的,当使用ResultMap并配置collection做分页的时候,我们可能会遇到获取当前页的数据少于每页大小的数据问题。使用PagerHelper插件同样会遇到该问题。原因引起该问题的原因是当我们使用的是ResultMap集合的嵌套结果映射来处理通过join查询的结果集,映射成Java实体类型的时候,会导致主数据被映射折叠后少于从数据库获取的数据,从而导致
转载
2024-01-27 21:01:15
98阅读
上一篇文章我写了在SSMS(SqlServer数据库管理工具)中如何配置主从复制,链接如下:这篇文章记录下如何使用SqlSugar实现数据库的读写分离,增删改只操作主库,通过数据库的分发和订阅功能完成主库数据自动往从库同步。下面代码实现了配置主库和从库的数据库链接,同时往主库新增一条记录。using SqlSugar;
using SqlSugarStart.DbModels;
using Sys
转载
2024-04-17 12:38:53
66阅读
mybatis动态SQL简化SQLSql 中可将重复的 sql 提取出来,使用时用include 引用即可,最终达到 sql 重用的目的。<!-- 抽取重复片段-->
<sql id="selectAll" >
select * from user
</sql>
<!--使用重复片段-->
<select id="findUserA
转载
2023-09-23 01:14:00
179阅读
MySQL锁分类使用方式乐观锁悲观锁级别共享锁排它锁意向锁间隙锁(Next-Key锁)锁粒度行级锁表级锁页级锁操作DDL锁MDL锁加锁方式自动锁显示锁其他死锁MVCC乐观锁和悲观锁悲观锁(Pessimistic Lock)“悲观”的认为获取锁非常有可能失败的,因此要先确保拿到锁再进行业务操作简单总结:先获取锁再进行业务操作通常使用 select for update操作来实现悲观锁,如果查询条件没