1、拜年

哈哈,现在是过年了,祝大家新年好。

本来大过年的是不打算碰电脑的,(抢票除外,三疯同学现在还没抢到票,然后突然又延长假期了)。现在疫情严重,被堵家里不能出去了。不能为国家做贡献,但是起码不能给国家添堵。希望国家能够把疫情控制住,国家加油、武汉加油。

2、概述

Mybatis一直在用,基本使用觉得难度也不大,映射文件、再一整合Spring就可以了。开发效率很快。但是一直都只是停留在使用的层面上,里面的加载机制、框架设计方式、源码啥的也都一直没有去了解过。这不刚好闲下来了,刚好有时间把Mybatis框架好好琢磨一下,扒一扒更深入的东西。在这里望大家多多指教,谢谢。

3、总架构

Mybatis是一个优秀的持久层框架,底层是基于JDBC实现与数据库的交互,并对底层的JDBC的基础上做了封装和优化,加入了缓存、日志等机制。且其中的动态SQL的诱惑力还是很大的。

4、产品分析

MyBatis的产品架构可以从接口应用、SQL处理、基础服务支撑几个角度进行分析。这套分析法则同样也适用于我们学习其他框架,大部分框架设计的总体思路都是差不多的。

5、技术架构分析

总架构、产品架构可以帮助我们很快的知道这套框架是用来做什么的,他为我们提供了哪些便利。但是我们只了解到框架暴露的接口而已,如果想要深入,还是需要了解背后的技术架构,对底层多了解一点,出现问题了也方便及时定位错误。

6、总结

在涉及到读取配置文件的框架中,我们都需要知道IO的读写操作。并且IO的读写时非常损耗资源的。所以框架都会使用对应的API来封装配置文件,缓存起来。当我们需要的时候读取对应你的对象资源,就等于读取配置文件中的资源了。这个在自己设计框架的时候一定要考虑进去,不能一用一读,不然性能全部放在了配置文件读取上了。

1、MyBatis框架底层初涉的更多相关文章

  1. 使用mybatis框架实现带条件查询-单条件

    之前我们写的查询sql都是没有带条件的,现在来实现一个新的需求,根据输入的字符串,模糊查询用户表中的信息 UserMapper.xml UserMapper.java 与jdbc的比较: 编写测试方法 ...

  2. Hibernate框架与Mybatis框架的对比

    学习了Hibernate和Mybatis,但是一直不太清楚他们两者的区别的联系,今天在网上翻了翻,就做了一下总结,希望对大家有帮助! 原文:http://blog.csdn.net/firejuly/ ...

  3. MyBatis 框架笔记

    Mybatis 框架笔记   ------技术源于热爱! 获取更多内容请关注小编的个人微信公众平台 1       Mybatis入门 1.1     单独使用jdbc编程问题总结 1.1.1  jd ...

  4. MyBatis框架知识整理

    MyBatis框架 一.介绍: MyBatis实际上是Ibatis3.0版本以后的持久化层框架[也就是和数据库打交道的框架]! 和数据库打交道的技术有: 原生的JDBC技术---> Spring ...

  5. MyBatis 框架系列之基础初始

    1.什么是 MyBatis MyBatis 本是 apache 的一个开源项目 iBatis,后改名为 MyBatis,它 是一个优秀的持久层框架,对 jdbc 的操作数据库的过程进行封装,使开发者只 ...

  6. 深入理解MyBatis框架的的配置信息

    面对一个框架,最重要的不是说回用其代码就可以了,我们需要了解其思想,这样才能更快更好的掌握这个框架.而对于一个框架,最重要的就是其配置文件的作用及功能了.下面,我就来谈一谈我今天遇到的这个MyBati ...

  7. SSM(Spring + Springmvc + Mybatis)框架面试题

    JAVA SSM框架基础面试题https://blog.csdn.net/qq_39031310/article/details/83050192 SSM(Spring + Springmvc + M ...

  8. 3.3.1 MyBatis框架介绍

    MyBatis框架介绍 1. 什么是框架 (1) 框架是偷懒的程序员将代码进行封装, 之后进行重复使用的过程. (2) 框架其实是一个半成品, 以连接数据库为例, 连接数据库使用的驱动, url, 用 ...

  9. 从 0 开始手写一个 Mybatis 框架,三步搞定!

    阅读本文大概需要 3 分钟. MyBatis框架的核心功能其实不难,无非就是动态代理和jdbc的操作,难的是写出来可扩展,高内聚,低耦合的规范的代码. 本文完成的Mybatis功能比较简单,代码还有许 ...

随机推荐

  1. C short类型的内存分析

    #include<stdio.h> #include<limits.h> void main(){ //printf("short%d, int%d, long%d ...

  2. js面向对象的程序设计 --- 中篇(创建对象) 之 原型模式

    ·原型模式 我们创建的每一个函数都由一个prototype(原型)属性,这个属性是一个指针,指向一个对象,而这个对象的用途是包含可以由特定类型的所有 实例共享的属性和方法. 如果按照字面意思来理解,那 ...

  3. echarts 如何去掉折线上的小圆点

    series:[{ symbol:none; //去掉折线上的小圆点 type:line; name:seriesName; data:seriesData }]

  4. Python_初识函数

    为什么要用函数 现在python届发生了一个大事件,len方法突然不能直接用了... 然后现在有一个需求,让你计算'hello world'的长度,你怎么计算? 这个需求对于现在的你其实不难,我们一起 ...

  5. 第四十六篇 入门机器学习——kNN - k近邻算法(k-Nearest Neighbors)

    No.1. k-近邻算法的特点 No.2. 准备工作,导入类库,准备测试数据 No.3. 构建训练集 No.4. 简单查看一下训练数据集大概是什么样子,借助散点图 No.5. kNN算法的目的是,假如 ...

  6. Java爬虫学习(2)之用对象保存文件demo(1)

    package com.mieba.spider; import java.util.ArrayList; import java.util.List; import java.util.Vector ...

  7. Centos7 安装 Cockpit

    1sudo yum -y install epel-release sudo yum -y update sudo shutdown -r now 2yum -y install cockpit sy ...

  8. LED Decorative Light Supplier - Decorative Use Of LED Light Strips

    Led strip refers to the led assembly in the ribbon of the FPC (flexible circuit board) or PCB hard b ...

  9. Vue - 过渡 列表过渡

    列表的进入/离开过渡 获取不大于数组长度的随机数,作为插入新值的位置 <div id="app" class="demo"> <button ...

  10. python开发基础04-函数、递归、匿名函数、高阶函数、装饰器

    匿名函数 lamba lambda x,y,z=1:x+y+z 匿名就是没有名字 def func(x,y,z=1): return x+y+z 匿名 lambda x,y,z=1:x+y+z #与函 ...