Mybatis源码解析
文章平均质量分 94
mybatis相关知识
技术路上的苦行僧
不怕别人天赋比你高,就怕别人比你更努力
展开
-
Mybatis源码分析(7)之缓存原理源码分析
一、前言在 Web 应用中,缓存是必不可少的组件。通常我们都会用 Redis 或 memcached 等缓存中间件,拦截大量奔向数据库的请求,减轻数据库压力。作为一个重要的组件,MyBatis 自然也在内部提供了相应的支持。通过在框架层面增加缓存功能,可减轻数据库的压力,同时又可以提升查询速度,可谓一举两得。MyBatis 缓存结构由一级缓存和二级缓存构成,这两级缓存均是使用 Cache 接口的实现类。因此,在接下里的章节中,我将首先会向大家介绍 Cache 几种实现类的源码,然后再分析一级和二级缓存的原创 2021-12-30 16:35:50 · 438 阅读 · 0 评论 -
Mybatis源码分析(6)之SQL执行流程
一、前言 我们进行一个mybatis框架的基础代码可以如下: @Test public void test2() throws IOException { String resource = "mybatis-config.xml"; InputStream inputStream = Resources.getResourceAsStream(resource); SqlSessionFactory sqlSession...原创 2021-12-28 17:47:22 · 776 阅读 · 0 评论 -
Mybatis源码分析(5)之mybatis中的MetaClass的作用
一、前言 在之前的配置文件解析过程中,我们有看到MetaClass这个类,这里我们花一章来分析MetaClass的源码来进而分析这个类的作用。二、源码分析 2.1MetaClass类源码分析元信息类MetaClass的构造方法为私有类型,所以不能直接创建,必须使用其提供的forClass方法进行创建。它的创建逻辑如下:public class MetaClass { //Reflector 的工厂类,兼有缓存 Reflector 对象的功...原创 2021-12-28 12:16:25 · 1011 阅读 · 0 评论 -
Mybatis源码分析(4)之mybatis配置文件解析源码分析(下)
一、前言 在上一篇文章中我们介绍到了mapper文件解析过程,在这里我们继续对mapper文件解析的源码进行分析;二、解析 mappers 配置2.1解析 <cache-ref> 节点在 MyBatis 中,二级缓存是可以共用的。这需要使用 <cache-ref> 节点配置参照缓存,比如像下面这样。<!-- Mapper1.xml --><mapper namespace="xyz.coolblog.dao.Ma...原创 2021-12-20 19:50:44 · 369 阅读 · 0 评论 -
Mybatis源码分析(3)之mybatis配置文件解析源码分析(上)
一、前言 在之前的文章中我们已经对Mybatis配置文件的各个配置简单的介绍了他对应的作用:Mybatis源码分析(2)之mybatis配置_jokeMqc的博客-CSDN博客一、前言 在上一篇我们已经介绍了mybatis的基本使用,这章我们的篇幅主要是介绍mybatis的配置,下一章我们在具体介绍对应的源码解析,因为我们首先要知道mybatis具体有哪些配置,然后再去看框架是怎么具体解析这些源码数据的。二、Mybatis配置 2.1属性(properties)这些属性可以在外部进行配置,...原创 2021-12-20 17:43:53 · 559 阅读 · 0 评论 -
Mybatis源码分析(2)之mybatis配置
一、前言 在上一篇我们已经介绍了mybatis的基本使用,这章我们的篇幅主要是介绍mybatis的配置,下一章我们在具体介绍对应的源码解析,因为我们首先要知道mybatis具体有哪些配置,然后再去看框架是怎么具体解析这些源码数据的。二、Mybatis配置 2.1属性(properties)这些属性可以在外部进行配置,并可以进行动态替换。你既可以在典型的 Java 属性文件中配置这些属性,也可以在 properties 元素的子元素中设置。例如:...原创 2021-12-19 17:23:52 · 1656 阅读 · 0 评论 -
Mybatis源码分析(1)之mybatis基本介绍
一、前言 在之前我们已经学了spring大部分的源码信息,接下来我继续学习其他的框架的源码,有了spring框架源码的思想,接下来大家去学习其他的框架源码就相对比较容易一点,接下来我们首先来学习Mybatis源码信息,mybatis这个框架相信大家都有使用过,第一篇首先我们先来看下mybatis的基本使用教程。二、Mybatis入门学习 2.1mybatis安装要使用 MyBatis, 只需将mybatis-x.x.x.jar文件置于类路径(c...原创 2021-12-19 16:25:35 · 205 阅读 · 0 评论 -
Mybatis动态SQL
动态 SQL MyBatis 的强大特性之一便是它的动态 SQL。如果你有使用 JDBC 或其它类似框架的经验,你就能体会到根据不同条件拼接 SQL 语句的痛苦。例如拼接时要确保不能忘记添加必要的空格,还要注意去掉列表最后一个列名的逗号。利用动态 SQL 这一特性可以彻底摆脱这种痛苦。 虽然在以前使用动态 SQL 并非一件易事,但正是 MyBatis 提供了可以被用...原创 2018-08-23 14:35:15 · 148 阅读 · 0 评论 -
Mybatis学习教程(详细版)
1、对原生态jdbc程序(单独使用jdbc开发)问题总结先来看一部分代码Public static void main(String[] args) { Connection connection = null; PreparedStatement preparedStatement = null; Result...原创 2018-08-07 16:32:31 · 337 阅读 · 0 评论 -
Mybatis之TypeHandler使用教程
1.TypeHandler概念 TypeHandler,类型转换器,在mybatis中用于实现java类型和JDBC类型的相互转换.mybatis使用prepareStatement来进行参数设置的时候,需要通过typeHandler将传入的java参数设置成合适的jdbc类型参数,这个过程实际上是通过调用PrepareStatement不同的set方法实现的;在获取结果返回之后,也需要将返回的...原创 2018-08-01 10:29:42 · 46198 阅读 · 8 评论 -
Mybatis MapperScannerConfigurer 作用详解
Mybatis MapperScannerConfigurer 自动扫描 将Mapper接口生成代理注入到SpringMybatis在与Spring集成的时候可以配置MapperFactoryBean来生成Mapper接口的代理. 例如bean id="userMapper" class="org.mybatis.spring.mapper.MapperFactoryBean"原创 2018-01-17 10:47:11 · 6492 阅读 · 0 评论 -
Mybatis之resultMap详解
本篇文章通过一个实际工作中遇到的例子并且加上我的个人的一些总结: 工程使用Spring+Mybatis+Mysql开发。具体的业务逻辑很重,对象之间一层一层的嵌套。和数据库表对应的是大量的model类,而和前端交互的是Vo类。现在需要做一个需求,有两种方式来实现: 使用现有的Service接口,或者自己在编写一些用到的接口,手动使用Java代码来分别调用Service接口来查出各个mo原创 2017-11-04 20:10:27 · 1055 阅读 · 0 评论 -
mybatis 中 foreach collection的三种用法
foreach的主要用在构建in条件中,它可以在SQL语句中进行迭代一个集合。foreach元素的属性主要有 item,index,collection,open,separator,close。 item表示集合中每一个元素进行迭代时的别名, index指 定一个名字,用于表示在迭代过程中,每次迭代到的位置, open表示该语句以什么开始, separator表示在原创 2017-11-04 15:56:48 · 3179 阅读 · 0 评论