mybatis入门实战&源码
文章平均质量分 86
mybatis入门实战以及源码解析
沉迷技术不能自拔
这个作者很懒,什么都没留下…
展开
-
mybatis入门实战&源码解读(3):mybatis执行流程分析与插件开发
看了很多博客和书籍,上来直接介绍某一个组件是用来干啥的、起什么作用等,这样直接讲原理让人看不下去,阅读源码最好方式是通过案例debug来一步一步看调用过程,先了解代码调用的主干,理解了主干之后再去仔细研究每个组件的作用以及原因会比较好,接下来通过案例debug+画图的方式一步一步了解mybatis的执行流程。一、加载mybatis主配置,生成会话工厂1.1案例首先编写测试代码:MyBatis中SqlSession实例使用工厂模式创建,所以在创建SqlSession实例之前,需要先调用SqlSessi原创 2021-01-26 20:27:22 · 179 阅读 · 0 评论 -
mybatis入门实战&源码解读(2):mybatis核心应用配置与原理源码解析
mybatis的一、二级缓存 大多数的持久层框架一样,MyBatis也提供了缓存测了,通过缓存测了来减少数据库的查询次数,从而提高性能。一级缓存我们在开发过程中,经常会遇到在一次数据库会话中,需要执行多次相同查询条件的SQL语句,MyBatis提供了一级缓存的方案来优化这部分场景,如果是相同的SQL语句,MyBatis会首先命中一级缓存,减少对数据库直接查询的次数,提高性能。使用一级缓存的条件必须是相同的SQL和参数;必须是同一个SqlSession会话;必须是相同的m原创 2021-01-13 19:03:19 · 285 阅读 · 0 评论 -
mybatis入门实战&源码解读番外篇(1):mybatis中#{}和${}的区别以及SQL注入问题分析
#{}和${}的区别#{}是预编译处理,${}是字符串替换;mybatis在处理#{}时,会将sql中的#{}替换为?号,调用PreparedStatement的set方法来进行赋值;mybatis在处理时,就是把{}替换成变量的值;使用#{}可以有效的防止SQL注入,提高系统的安全性。SQL注入问题分析#{}分析首先来看一个mapper.xml文件:<?xml version="1.0" encoding="UTF-8" ?><!DOCTYPE mapper原创 2021-01-13 10:41:52 · 163 阅读 · 0 评论 -
mybatis入门实战&源码解读(1):mybatis入门实战
MyBatis是什么? MyBatis是一个支持普通SQL查询、存储过程以及高级映射的持久层框架,消除了几乎所有的JDBC代码和参数的手动设置以及对结果集的检索,并使用简单的XML或者注解进行配置和原始映射。用以将接口和Java的POJO映射成数据库中的记录,使得java开发人员可以使用面向对象的思想来操作数据库。MyBatis通过描述Java对象和数据库表之间的映射关系,自动化将java应用程序中的对象持久化到关系型数据库的表中。MyBatis框架的工作原理如下图所示: 从上图中可以看到,在使原创 2021-01-11 18:47:19 · 250 阅读 · 1 评论