![](https://img-blog.csdnimg.cn/20201014180756724.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
MyBatis
文章平均质量分 60
Rangers-sun
纸上得来终觉浅,绝知此事要躬行
展开
-
MyBatis(十一):MyBatis架构流程浅析
架构分层我们将MyBatis架构分为三层,分别为接口层、数据处理层和框架支撑层接口层:提供外部接口调用的API,使用端通过这些API来操作数据库,接口层收到请求后会调用数据处理层完成具体的数据处理使用端可以通过两种方式调用接口层:MyBatis提供的API、Mapper动态代理数据处理层:负责具体的SQL查找、解析、执行与执行结果映射处理,主要负责根据具体的请求完成数据库操作框架支撑层:负责基础的功能支撑,主要功能有连接管理、事务管理、配置加载和缓存管理主要组件及关系..原创 2021-03-14 23:29:01 · 354 阅读 · 2 评论 -
MyBatis(十):MyBatis延迟加载/懒加载详解
延迟加载介绍 MyBatis中的延迟加载,也成为懒加载,是指在进行关联查询时,按照设置的延迟规则推迟对关联对象的查询。延迟加载可以有效的减少数据库的压力。延迟加载只是针对有延迟设置的关联对象的推迟查询,对于主主查询是直接进行执行SQL语句。MyBatis关联查询加载时机直接加载:执行完主对象的查询后,马上执行对关联对象的查询语句侵入式延迟:执行完对主对象对查询后,不会执行对关联对象的查询,但当访问主对象的属性详情是,就会执行关联对象的查询深度延迟:只有当真正访问关联对象的详情时,才会执..原创 2021-03-13 17:48:29 · 1080 阅读 · 0 评论 -
MyBatis(九):MyBatis类型处理器(TypeHandler)详解
TypeHandler简介TypeHandler,顾名思义类型转换器,就是将数据库中的类型与Java中的类型进行相互转换的处理器。MyBatis 在设置预处理语句(PreparedStatement)中的参数或从结果集中取出一个值时, 都会用类型处理器将获取到的值以合适的方式转换成 Java 类型实现讲解经常自定义类型转换器方式有两种,实现 TypeHandler 接口, 或继承抽象类 BaseTypeHandle,并且可以指定转换后的字段类型。其实BaseTypeHandler也是..原创 2021-03-13 14:34:35 · 3145 阅读 · 5 评论 -
MyBatis(八):MyBatis插件机制详解
MyBatis插件插件机制简介 MyBatis插件其实就是为使用者提供的自行拓展拦截器,主要是为了可以更好的满足业务需要。 在MyBatis中提供了四大核心组件对数据库进行处理,分别是Executor、Statement Handler、ParameterHandler及ResultSetHandler,同时也支持对这四大组件进行自定义扩展拦截,用来增强核心对象的功能。其本质上是使用底层的动态代理来实现的,即程序运行时执行的都是代理后的对象。MyBatis允许拦截的方法如下:执行器Ex..原创 2021-03-12 16:40:36 · 344 阅读 · 0 评论 -
MyBatis(七):MyBatis缓存详解(一级缓存/二级缓存)
一级缓存 MyBatis一级缓存上SqlSession缓存,即在统一SqlSession中,在不执行增删改操作提交事务的前提下,对同一条数据进行多次查询时,第一次查询从数据库中查询,完成后会存入缓存,其余从缓存中直接读取。MyBatis一级缓存默认开启。二级缓存 MyBatis二级缓存是命名空间NameSpace缓存,也可理解为二级缓存被多个SqlSession共享,是一个全局变量。 二级缓存默认是关闭的,需要手动配置进行开启。开启二级缓存后,数据查询流程为:二级缓存->一级缓..原创 2021-03-11 16:43:57 · 440 阅读 · 2 评论 -
MyBatis(六):MyBatis复杂映射
一对一、多对一一对一/多对一都是使用association标签来进行关联,并制定javaType属性,定义resultMap接收查询结果例如:查询订单的时候需要一并把用户信息查出来,一个订单对应一个用户,同时多个订单对应同一个用户,Order实体增加user属性<select id="findAll" resultMap="orderMap"> SELECT *,U.`name`,U.address FROM `order` O LEFT JOIN `user` U ON O...原创 2021-03-10 21:49:19 · 253 阅读 · 0 评论 -
MyBatis(五):MyBatis简介及基本使用
MyBatist简介 MyBatis是一款优秀的基于ORM的半自动轻量级持久层框架,它支持定制化SQL、存储过程以及高级映射。MyBatis避免了几乎所有的JDBC代码和手动设置参数以及获取结果集。MyBatis可以使用简单的XML或注解来配置和映射原生类型、接口和Java的POJO (Plain Old Java Objects,普通老式Java对 象)为数据库中的记录。MyBatis的优点 半自动化的持久层框架,对开发人员开说,核心sql还是需要自己进行优化,sql和java..原创 2021-03-10 16:54:27 · 187 阅读 · 0 评论 -
MyBatis(四):自定义持久层框架优化
修改IUserDao、UserMapper.xmlpackage com.rangers;import com.rangers.entity.User;import java.util.List;/** * @Author Rangers * @Description 用户数据库访问Dao * @Date 2021-03-07 **/public interface IUserDao { /** * @Author Rangers * @Descri..原创 2021-03-08 23:50:29 · 139 阅读 · 0 评论 -
MyBatis(三):自定义持久层框架实现
新建Maven工程架构端MyPersistent、使用端MyPersistentTest,使用端引入架构端Maven坐标MyPersistentTest使用端配置新增依赖 <dependency> <groupId>mysql</groupId> <artifactId>mysql-connector-java</artifactId> <version>8.0.23..原创 2021-03-08 23:49:45 · 210 阅读 · 2 评论 -
MyBatis(二):自定义持久层框架思路
自定义持久层框架思路分析使用端引入架构端Maven依赖SqlMapConfig.xml—数据库配置信息(数据库连接jar名称、连接URL、用户名、密码),引入Mapper.xml的路径XxMapper.xml—SQL配置信息(SQL语句、参数类型、返回值类型)架构端(本质对JDBC封装)加载使用端配置信息(数据库配置信息、SQL配置信息)为输入流,读入内存解析配置文件输入流(使用Dom4j解析) 创建SqlSessionFactoryBuilder类,编写build原创 2021-03-08 23:48:06 · 170 阅读 · 1 评论 -
MyBatis(一):使用JDBC存在的问题
JDBC使用步骤:a:加载 JDBC 驱动程序b:创建数据库的连接对象Connectionc:根据链接获取Statementd:拼接SQL语句及设置参数e:执行SQL并获取结果集f:关闭使用的JDBC对象具体代码如下public static void main(String[] args) { Connection connection = null; PreparedStatement preparedStatement = null; ..原创 2021-03-08 23:46:22 · 194 阅读 · 0 评论