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. css和js处理隔行换色的问题

      <html> <head> <meta charset="utf-8"> <meta name="" conten ...

  2. MYSQL之路练习题

    题目换成求平均薪水的等级最高的部门的部门名称

  3. asp.net 的 web form 过时了吗

    本文链接:https://blog.csdn.net/closurer/article/details/79526006web form 其实是一个超前的设计. 每个厂商都希望服务器端和客户端采用同样 ...

  4. CRC碰撞

    循环冗余效验(Cyclic Redundancy Check, CRC) 是一种根据网络数据包或电脑文件等数据产生简短固定位数校验码的一种散列函数,主要用来检测或校验数据传输或者保存后可能出现的错误. ...

  5. torch.cat拼接 stack拼接 分块chunk

    torch.cat拼接 stack拼接 分块chunk 待办 https://blog.csdn.net/qq_39709535/article/details/80803003 stack dim理 ...

  6. gradle-技能保存

    gradle编译java springboot,指定使用哪个环境配置文件 首先在build.gradle里面声明一个变量 def profileName = project.hasProperty(& ...

  7. 题解【洛谷P4588】[TJOI2018]数学计算

    题目描述 小豆现在有一个数\(x\),初始值为\(1\).小豆有\(Q\)次操作,操作有两种类型: \(1\;m\):\(x=x\times m\)输出\(x\%mod\); \(2\;pos\):\ ...

  8. 马路 树链剖分/线段树/最近公共祖先(LCA)

    题目 [问题描述] 小迟生活的城市是⼀棵树(树指的是⼀个含有 \(n\) 个节点以及 \(n-1\) 条边的⽆向连通图),节点编号从 \(1\) 到 \(n\),每条边拥有⼀个权值 \(value\) ...

  9. 生产环境设置mysql主从复制

    Slave服务器的版本要等于或者高于master服务器 现在的实例是在mysql 5.7上的主从配置 a) master服务器的my.cnf配置,server_id 推荐用IP的后两位数字 [mysq ...

  10. Java基础(十二)之包和权限访问

    软件包 软件包解决了两个类名字一样的问题.软件包就是一个"文件夹". 包名的命名规范:1.要求所有字母都小写:2.包名一般情况下,是你的域名倒过来写.比如baidu.com,pac ...