随笔分类 - Mybatis
摘要:#代码案例 MERGE INTO table_a t USING ( SELECT 值1 别名1, 值2 别名2, 值3 别名3 FROM DUAL UNION ALL SELECT 值1 别名1, 值2 别名2, 值3 别名3 FROM DUAL ) t1 ON ( t.列1 = t1.别名1 A
阅读全文
摘要:Spring扫描Mybatis的mapper接口的配置 1.注意 mybatis支持与spring结合使用,使得mybatis中的mapper接口可以作为spring容器中的bean被应用代码中相关类,如Service类,通过@Autowired自动注入进来。 在使用方面需要在项目中引入以下包: <
阅读全文
摘要:1.声明式事物 1.1 事物的回顾 事务在项目开发过程非常重要,涉及到数据的一致性的问题,不容马虎! 事务管理是企业级应用程序开发中必备技术,用来确保数据的完整性和一致性。 事务就是把一系列的动作当成一个独立的工作单元,这些动作要么全部完成,要么全部不起作用。 事务四个属性ACID 原子性(atom
阅读全文
摘要:抽象方法的实现类直接继承SqlSessionDaoSupport类 , 直接利用 getSqlSession() 获得 , 然后直接注入SqlSessionFactory . 比起方式1 , 不需要管理SqlSessionTemplate 测试: 1、将我们上面写的UserDaoImpl修改一下 p
阅读全文
摘要:spring-mybatis.xml <?xml version="1.0" encoding="UTF-8"?> <beans xmlns="http://www.springframework.org/schema/beans" xmlns:xsi="http://www.w3.org/2001
阅读全文
摘要:1.2 二级缓存 【官方声明】 ⇒ 如何开启【二级缓存】 默认情况下,只启用了本地的会话缓存,它仅仅对一个会话中的数据进行缓存。 要启用全局的二级缓存,只需要在你的 SQL 映射文件中添加一行: 在XML映射文件中添加以下代码,以开启【二级缓存】 <cache/> 【官方声明】 ⇒ 【二级缓存】的作
阅读全文
摘要:1.缓存 【官方声明】 MyBatis 内置了一个强大的事务性查询缓存机制,它可以非常方便地配置和定制。 为了使它更加强大而且易于配置,我们对 MyBatis 3 中的缓存实现进行了许多改进。 一级缓存(SqlSession级别) 二级缓存(mapper||namespace级别) 1.1 一级缓存
阅读全文
摘要:1.动态SQL 【官方声明】 动态 SQL 是 MyBatis 的强大特性之一。如果你使用过 JDBC 或其它类似的框架,你应该能理解根据不同条件拼接 SQL 语句有多痛苦,例如拼接时要确保不能忘记添加必要的空格,还要注意去掉列表最后一个列名的逗号。利用动态 SQL,可以彻底摆脱这种痛苦。 使用动态
阅读全文
摘要:#关联的嵌套 Select 查询 1、关联 - association 【多对一】(实体类中包含关联对象) 2、集合 - collection 【一对多】(实体类中包含关联对象的集合) 3、JavaType & ofType 1、JavaType用来指定实体类中属性的类型 2、ofType用来指定映
阅读全文
摘要:模拟测试:一名老师有多名学生 ⇒ 【面向教师】 本质:使用<collection>标签完成一对多的输出 建立实体类 import lombok.Data; @Data public class Student { private int id; private String name; privat
阅读全文
摘要:模拟测试:多个学生对应一个老师 1、 MySQL测试表【Teachers】、【Students】 2、 测试实体类【Teachers】、【Students】 3、 dao层【TeachersMapper】、【StudentsMapper】 4、 XML映射文件【teachersMapper.xml】
阅读全文
摘要:MyBatis执行流程 本质:反射机制实现MyBatis三大类的创建 底层:使用动态代理接管dao层接口操作 执行流程:MyBatis工具类 ⇒ 【MyBatisUtils】,按照【官方使用步骤】: 获取核心配置文件【mybatis-config.xml】中的配置 try{ // 指定配置文件路径
阅读全文
摘要:1、持久化 数据持久化 持久化就是将程序的数据在持久状态和瞬时状态转化的过程 内存:断电即失 数据库(jdbc),io文件持久化 生活:罐头 为什么需要持久化? 有一些对象,不能让它丢失 内存太贵 理解: 1.在一定周期内保持不变就是持久化,持久化是针对时间来说的。 2.数据库中的数据就是持久化了的
阅读全文
摘要:【官方声明】 resultMap 元素是 MyBatis 中最重要最强大的元素。它可以让你从 90% 的 JDBC ResultSets 数据提取代码中解放出来,并在一些情形下允许你进行一些 JDBC 不支持的操作。实际上,在为一些比如连接的复杂语句编写映射代码的时候,一份 resultMap 能够
阅读全文
摘要:1、核心配置文件 mybatis-config.xml MyBatis 官方的配置文档结构如下: 2、环境配置(environments) MyBatis 可以配置成适应多种环境 不过要记住:尽管可以配置多个环境,但每个 SqlSessionFactory 实例只能选择一种环境。 学会使用配置多套运
阅读全文
摘要:####1.新建项目 新建一个普通的maven项目 删除src目录(作为父工程) 导入maven依赖 <dependencies> <!--mysql驱动--> <dependency> <groupId>mysql</groupId> <artifactId>mysql-connector-jav
阅读全文
摘要:####mybatis通过反射来获取mapper,反射通常需要无参构造方法和getset方法,而我当时new student的时候想偷懒,就写了个有参构造方法。结果就没了无参构造方法,就会报错。
阅读全文