mybatis
Alyson_jm
这个作者很懒,什么都没留下…
展开
-
Mybatis学习(一)——概述
一、什么是Mybatis MyBatis 是一款优秀的持久层框架,它支持定制化 SQL、存储过程以及高级映射。MyBatis 避免了几乎所有的 JDBC 代码和手动设置参数以及获取结果集。MyBatis 可以使用简单的 XML 或注解来配置和映射原生类型、接口和 Java 的 POJO(Plain Old Java Objects,普通老式 Java 对象)为数据库中的记录。 二、mybatis ...原创 2019-06-13 20:11:27 · 184 阅读 · 0 评论 -
Mybatis学习(二)——动态代理源码分析
Mybatis 之所以不用我们自己实现接口的实例,根本原因就在于它采用了反射机制以及动态代理来代理我们的接口。 一、什么是动态代理 代理是一种模式,提供了对目标对象的间接访问方式,即通过代理访问目标对象。如此便于在目标实现的基础上增加额外的功能操作,前拦截,后拦截等,以满足自身的业务需求,同时代理模式便于扩展目标对象功能的特点也为多人所用。 JDK 本身提供的动态代理只能代理接口。java 中...原创 2019-06-13 21:45:27 · 439 阅读 · 0 评论 -
mybatis 学习(六)——缓存机制
文章目录一、一级缓存二、二级缓存 mybatis提供查询缓存,用于减轻数据压力,提高数据库性能。 mybaits提供一级缓存,和二级缓存。 一级缓存是SqlSession级别的缓存。在操作数据库时需要构造 sqlSession对象,在对象中有一个(内存区域)数据结构(HashMap)用于存储缓存数据。不同的sqlSession之间的缓存数据区域(HashMap)是互相不影响的。 一级缓存的作用域是...原创 2019-06-19 12:19:05 · 329 阅读 · 0 评论 -
Mybatis 学习(七)——逆向工程
mybatis需要程序员自己编写sql语句,mybatis官方提供逆向工程,可以针对单表自动生成mybatis执行所需要的代码(mapper.java、mapper.xml、pojo…),可以让程序员将更多的精力放在繁杂的业务逻辑上。 企业实际开发中,常用的逆向工程方式:由数据库的表生成java代码。之所以强调单表两个字,是因为Mybatis逆向工程生成的Mapper所进行的操作都是针对单表的,也...原创 2019-06-19 12:19:25 · 262 阅读 · 0 评论 -
Mybatis 学习(三)——动态SQL
文章目录1、if 标签2、where 标签3.trim 标签4.choose 标签5.foreach 标签6.两个内置参数7、bind8、sql 标签和include标签 如果我们有复杂的业务,我们需要更复杂的SQL语句,往往需要拼接,而拼接SQL语句,稍微不注意,由于引号、空格等缺失都会导致错误,而Mybatis 提供的动态SQL 使得拼接SQL语句变得容易。 动态 SQL 元素和 JSTL 或...原创 2019-06-14 15:20:26 · 309 阅读 · 0 评论 -
Mybatis学习(四)——Association 查询和Collection 查询
文章目录一、ResultMap二、Association 查询三、Collection 查询四、分步查询 场景 有一个学生类和一个部门类,一个学生属于一个部门,一个部门拥有多个学生。 在前面我们学生类的基础上给它加一个部门的属性 在部分的属性里,我们需要给它加一个学生的集合 也就是说,学生和部门是一对一的关系,部门和学生是一对多的关系 学生类 private Integer id; pri...原创 2019-06-14 17:03:09 · 692 阅读 · 0 评论 -
Mybatis 学习(五)——延迟加载与分步查询
文章目录一、分步查询二、延时加载 本篇博客主要讲的是延迟加载,也叫懒加载,但是懒加载往往与分布查询同时使用,作为背景知识我们也介绍一下分布查询 一、分步查询 分布查询通常应用于关联表查询,通常我们关联查询是进行多表联合查询,分布查询时先查询主表,然后通过主表得到的信息将参数传递给关联表,查询关联表的信息。 从代码层面上来说: 关联表能简化代码编写逻辑,减小代码编写难度 从功能层面上来说:关联表只需...原创 2019-06-16 13:56:11 · 445 阅读 · 0 评论