Mybatis理解
2024-09-08 18:19:19
MyBatis学习及理解
1.Mybatis简介
- MyBatis是一款优秀的持久层框架,他支持定制化SQL文件、存储过程以及高级映射。避免了JDBC代码和手动设置参数以及获取结果集,Mybatis可以使用XML和注解来配置映射信息
2.框架特点
- 简单易学,
- 灵活,
- 解除了sql语句和代码的耦合性,提高了可维护性
- 支持动态编写SQL
3.MyBatis核心
- Configuration:Mybatis的配置信息都在Configuration中
- SqlSessionFactory:专门创建SqlSession的工厂
- SqlSession:主要与数据库进行交互,完成数据的增删改查
- Exexutor:Mybatis执行器,是Mybatis调度的核心,生成Sql语句,
- SqlSessionFactoryBuilder:读取mybatis-config.xml中的配置信息,生成SqlSession
4.mybatis原理图
5.执行原理:
- 通过Resources加载配置好的mybatis-config.xml配置文件
- 通过new的SqlSessionFactoryBuild构建出了SqlSessionFactory,调用build()方法,会发现XMLconfigBuilder,他是用来解析XML的也是构建者,通过parse方法解析xml
- 解析完成之后返回Configuration对象,存放mybatis核心配置文件解析完成的结果,返回一个SqlSessionFactory的实现类,传入DefaultSqlSession对象,(采用构建者模式,直接把对象传给SqlSessionFactoryBuilder)
- 调用openSession()方法,会有一个返回值是SqlSession的方法,在SqlSsession中涉及到了事务的操作,通过transactiontory的参数产生了transcction(事务),其中还有一个executor,是一个接口(执行器),是mybatis核心执行器。发送Sql语句并执行,得到SqlSession了
- JDK动态代理生成mapper接口和mapper接口的代理实现类,调用的方法是MapperProxy的invoke()方法,确定需要的方法,
最新文章
- 45分钟带你入门Linux(附:笔者在工作室开讨论班录制的视频讲解)
- Python 类(一)
- ecshop 的transport.js 与jqueyr冲突
- CommandExtra.lua --游戏命令扩展
- Django model 中meta options之 abstract
- 关于Cygwin——包管理、替换默认终端、同MSYS的比较
- utf8汉字编码16进制对照
- CSS3 背景
- IIS7.0 Windows Server 2008 R2 下配置证书服务器和HTTPS方式访问网站
- 开源项目Material Calendar View 学习记录 (一)
- (六)boost库之内存管理shared_ptr
- SpringMVC 学习-返回字符串中文乱码问题解决
- 【BZOJ5499】[2019省队联测]春节十二响(贪心)
- @mentions for Users with ActionText; 使用Tribute.js库
- javascript高级程序设计第3版——第3章 基本概念
- 使用openssl创建一个自签名https证书,并配置到nginx里面
- 去除input默认带的上下按钮与修改placeholder的默认颜色、背景、placeholder内容的大小
- 第二十二节:Java语言基础-详细讲解位运算符与流程控制语句
- unity 向量赋值 传引用?传值?
- C# 获取文件图标