随笔分类 -  MyBatis学习

摘要:首先来思考一下,在开启了二级缓存的情况下,一个用户查询数据经历的过程是什么样的。 我们看一下,下面这张图: 用户先去二级缓存中去寻找数据,如果找不到再去一级缓存寻找数据,如果还是找不到那么去数据库中进行查询。 我么具体来看一下: @Test public void getUserById() { S 阅读全文
posted @ 2022-09-18 14:43 谁知道水烫不烫 阅读(66) 评论(0) 推荐(0) 编辑
摘要:上一篇我们学习了一级缓存,这次我们来学习二级缓存。 一、什么是二级缓存 二级缓存也叫全局缓存,是namespace级别的缓存,每一个命名空间对应一个二级缓存。 二、二级缓存的工作机制 1.每个SqlSession对应一个一级缓存。 2.当SqlSession关闭时,对应的一级缓存就会消失,但是如果我 阅读全文
posted @ 2022-09-18 09:53 谁知道水烫不烫 阅读(282) 评论(0) 推荐(0) 编辑
摘要:MyBatis的缓存分为一级缓存和二级缓存。 先看一下MyBatis官方文档给出的说明: MyBatis 内置了一个强大的事务性查询缓存机制,它可以非常方便地配置和定制。 为了使它更加强大而且易于配置,我们对 MyBatis 3 中的缓存实现进行了许多改进。 默认情况下,只启用了本地的会话缓存,它仅 阅读全文
posted @ 2022-09-17 18:53 谁知道水烫不烫 阅读(112) 评论(0) 推荐(0) 编辑
摘要:前面我们已经学习了动态SQL的if、where、set、choose(when,otherwise),今天我们来学习剩下的foreach。 什么时候用到foreach呢?比如说我们要查询一个表中id为1,3,4的数据,我们应该写SQL语句为: select * from TABLE where (i 阅读全文
posted @ 2022-09-17 17:14 谁知道水烫不烫 阅读(463) 评论(0) 推荐(0) 编辑
摘要:一、什么是SQL片段 就是将我们Mapper.xml文件中部分SQL语句拿出来单独用一个sql标签进行标记,这个sql标签就是一个SQL片段。 二、为什么要用到SQL片段 这个sql标签可以被引用,这样需要用到这个sql标签中的SQL语句的地方直接引用就可以,如此一来就提高了SQL代码的复用性,而不 阅读全文
posted @ 2022-09-17 16:33 谁知道水烫不烫 阅读(282) 评论(0) 推荐(0) 编辑
摘要:在上一篇if中我们已经把if和where标签进行了学习,现在我们学习一些剩下的标签。 一、set标签 首先看官方文档给出的说明: 用于动态更新语句的类似解决方案叫做 set。set 元素可以用于动态包含需要更新的列,忽略其它不更新的列。 set 元素会动态地在行首插入 SET 关键字,并会删掉额外的 阅读全文
posted @ 2022-09-17 14:42 谁知道水烫不烫 阅读(466) 评论(0) 推荐(0) 编辑
摘要:一、什么是动态SQL之if语句 if很简单了,就是满足条件就执行,不满足条件不执行。 那么动态SQL中的if语句是怎么样的呢? 首先我们来看一张表blog: 如果我们执行下面的SQL语句: select * from blog 肯定会将所有的数据都查出来。那么我们可以在后面加上where条件进行筛选 阅读全文
posted @ 2022-09-16 13:18 谁知道水烫不烫 阅读(1305) 评论(0) 推荐(1) 编辑
摘要:一、什么是动态SQL 官方文档给出了这样的说明: 动态 SQL 是 MyBatis 的强大特性之一。如果你使用过 JDBC 或其它类似的框架,你应该能理解根据不同条件拼接 SQL 语句有多痛苦,例如拼接时要确保不能忘记添加必要的空格,还要注意去掉列表最后一个列名的逗号。利用动态 SQL,可以彻底摆脱 阅读全文
posted @ 2022-09-16 11:29 谁知道水烫不烫 阅读(75) 评论(0) 推荐(0) 编辑
摘要:在MyBatis的映射中有column这么一个属性,我一直以为它映射的是数据库表中的列名,但经过学习发现他似乎映射的是SQL语句中的列名,或者说是查询结果所得到的表的列名。 下面我们进行一个实验。 首先我们有一张user表: 我还有一个实体类User,有着id、username、password三个 阅读全文
posted @ 2022-09-16 08:12 谁知道水烫不烫 阅读(323) 评论(0) 推荐(0) 编辑
摘要:上一篇我们学习了多对一的处理,这次我们来学习一对多的处理。 一对多的处理与多对一的处理差别不大,只是有一些细微的地方需要注意。 我们还是先做准备工作,其他部分与多对一的准备工作相同,仅实体类构建需要做出改变。 一、修改实体类 Student类: package com.jms.pojo; publi 阅读全文
posted @ 2022-09-15 22:14 谁知道水烫不烫 阅读(140) 评论(0) 推荐(0) 编辑
摘要:现在我们就开始更加深入的学习了,今天我们要学习的是多对一的处理。 在正式开始之前我们需要做一些准备工作。 一、在数据库建立两张新的表并插入数据 CREATE TABLE `teacher` ( `id` INT(10) NOT NULL, `name` VARCHAR(30) DEFAULT NUL 阅读全文
posted @ 2022-09-15 18:02 谁知道水烫不烫 阅读(87) 评论(0) 推荐(0) 编辑
摘要:一、什么是@Param()注解 我们来举个简单的例子,拿我们上一篇中查找的例子来说。 先看原来的代码: @Select("select * from user where id=#{id}") User getUserByID(int id); 很明显,这是一句根据id来进行查找的方法,我们去具体的 阅读全文
posted @ 2022-09-15 09:33 谁知道水烫不烫 阅读(1545) 评论(0) 推荐(0) 编辑
摘要:接上一篇,我们上一篇说到了不配置Mapper.xml文件,直接在接口中使用注解进行映射,这里我们将简单的增删改查全部用注解实现一遍。 一、设置自动提交事务 在去实现之前,我们先想一下我们前面实行增删改的事务时,每次都要手动提交事务,那么有没有什么方法可以自动提交呢,答案是有的。 修改我们的工具类My 阅读全文
posted @ 2022-09-15 08:32 谁知道水烫不烫 阅读(347) 评论(0) 推荐(0) 编辑
摘要:一、什么是使用注解开发 使用注解开发就是无需再配置Mapper.xml文件,直接在接口中利用注解实现SQL语句。 二、为什么要使用注解开发 正如官方文档所说: 使用注解来映射简单语句会使代码显得更加简洁。 但对于稍微复杂一点的语句,Java 注解不仅力不从心,还会让你本就复杂的 SQL 语句更加混乱 阅读全文
posted @ 2022-09-14 22:50 谁知道水烫不烫 阅读(153) 评论(0) 推荐(0) 编辑
摘要:首先说明一下,这种涉及了在MyBatis(二)中说的那个第二种老方法,所以一般不推荐使用。 上一篇我们利用SQL的limit实现了分页,是在SQL层面的,那么这次我们利用java代码RowBounds来实现。直接上操作。 一、RowBounds实现分页 1.在UserMapper接口中声明一个新的方 阅读全文
posted @ 2022-09-14 17:22 谁知道水烫不烫 阅读(1191) 评论(0) 推荐(0) 编辑
摘要:一、SQL中limit的基本用法 我们先来熟悉SQL中limit的基本用法 这是我现有的表结构 然后进行limit查询 1. select * from user limit 3,4 这句SQL语句的意思是查询user表,跳过前3行,也就是从第四行开始查询4行数据。查询结果如下: 2. select 阅读全文
posted @ 2022-09-14 16:20 谁知道水烫不烫 阅读(2069) 评论(0) 推荐(0) 编辑
摘要:MyBatis 通过使用内置的日志工厂提供日志功能。 在这里我们对STDOUT_LOGGING和LOG4J进行学习。 一、STDOUT_LOGGING 1.什么是STDOUT_LOGGING STDOUT_LOGGING是MyBatis的标准日志配置。STDOUT_LOGGING的使用无需其他的依赖 阅读全文
posted @ 2022-09-14 15:02 谁知道水烫不烫 阅读(150) 评论(0) 推荐(0) 编辑
摘要:一、什么是结果集映射 这里我们直接看MyBatis官方文档给出的内容: 结果映射 resultMap 元素是 MyBatis 中最重要最强大的元素。它可以让你从 90% 的 JDBC ResultSets 数据提取代码中解放出来,并在一些情形下允许你进行一些 JDBC 不支持的操作。实际上,在为一些 阅读全文
posted @ 2022-09-14 10:52 谁知道水烫不烫 阅读(234) 评论(0) 推荐(0) 编辑
摘要:直接看官方文档内容: 作用域(Scope)和生命周期 理解我们之前讨论过的不同作用域和生命周期类别是至关重要的,因为错误的使用会导致非常严重的并发问题。 SqlSessionFactoryBuilder 这个类可以被实例化、使用和丢弃,一旦创建了 SqlSessionFactory,就不再需要它了。 阅读全文
posted @ 2022-09-09 09:27 谁知道水烫不烫 阅读(44) 评论(0) 推荐(0) 编辑
摘要:首先我们直接看官方给出的文档: 映射器(mappers) 既然 MyBatis 的行为已经由上述元素配置完了,我们现在就要来定义 SQL 映射语句了。 但首先,我们需要告诉 MyBatis 到哪里去找到这些语句。 在自动查找资源方面,Java 并没有提供一个很好的解决方案,所以最好的办法是直接告诉 阅读全文
posted @ 2022-09-09 09:07 谁知道水烫不烫 阅读(64) 评论(0) 推荐(0) 编辑

点击右上角即可分享
微信分享提示