-
通过Reader对象读取Mybatis映射文件
-
通过SqlSessionFactoryBuilder对象创建SqlSessionFactory对象
-
获取当前线程的SQLSession
-
事务默认开启
-
通过SQLSession读取映射⽂件中的操作编号,从而读取SQL语句
-
提交事务
-
关闭资源
5. 完成CRUD操作
============
我们在上面中已经简单知道了Mybatis是怎么使用的以及工作流程了,这次我们使用Mybatis来完成CRUD的操作,再次巩固Mybatis的开发步骤以及一些细节
包与类之间的结构
6. 动态SQL
=========
何为动态SQL??回顾⼀下我们之前写的SSH项⽬中,有多条件查询的情况,如下图
7. 入门总结
========
-
Mybatis的准备工作与Hibernate差不多,都需要一个总配置文件、一个映射文件。
-
Mybatis的SQLSession工具类使用ThreadLocal来对线程中的Session来进行管理。
-
Mybatis的事务默认是开启的,需要我们手动去提交事务。
-
Mybatis的SQL语句是需要手写的,在程序中通过映射文件的命名空间**.sql语句的id来进行调用!**
-
在Mybatis中,增删改查都是Mybatis需要我们自己写SQL语句的,然后在程序中调用即可了。SQL由于是我们自己写的,于是就相对Hibernate灵活一些。
-
如果需要传入多个参数的话,那么我们一般在映射文件中用Map来接收。
第二部分:Mybatis配置信息
================
1. 映射文件
========
在mapper.xml文件中配置很多的sql语句,执行每个sql语句时,封装为MappedStatement对象,mapper.xml以statement为单位管理sql语句
2. 配置文件
========
别名
3. 配置相关总结
=============
-
在程序中调用的SQL语句是由映射文件的命令空间+sql片段的id所组成的。它内部会生成一个Statement对象的。
-
在使用别名的时候,可以指定包名,在使用总配置文件加载映射文件时,也可以指定包名。
-
主键如果需要返回的话,使用selectKey 标签即可。UUID也可以返回。在Oracle的话,是使用序列来返回自动增长的主键的。
-
占位符有两种,一种是解析传递进来的参数数据、一种是原样输出传递进来的数据。
第三部分:关联映射
=========
1. Mybatis【多表连接】
=================
我们在学习Hibernate的时候,如果表涉及到两张的话,那么我们是在映射文件中使用 … 等标签将其的映射属性关联起来的…那么在我们Mybatis中又怎么做呢???
2. 关联映射总结
==========
对于Mybatis的多表连接就非常简单了,由于SQL语句全是由我们自己写,如果我们返回的数据类型在当前的实体中是不够封装的话,那么我们只要再关联对应的映射属性就行了!
转发+关注,然后私信回复 “MB” 即可获得《MyBatis源码笔记》的免费领取方式!
第四部分:缓存+Mapper代理+逆向工程
=====================
1. 前言
======
本文主要讲解Mybatis的以下知识点:
Mybatis缓存
-
一级缓存
-
二级缓存
-
与Ehcache整合
Mapper代理
- 使用Mapper代理就不用写实现类了
逆向工程
- 自动生成代码
2. Mybatis缓存
=============
缓存的意义将用户经常查询的数据放在缓存(内存)中,用户去查询数据就不用从磁盘上(关系型数据库数据文件)查询,从缓存中查询,从而提高查询效率,解决了高并发系统的性能问题。
3.MyBatis和ehcache缓存框架整合
=======================
ehcache是专门用于管理缓存的,Mybatis的缓存交由ehcache管理会更加得当
在mybatis中提供一个cache接口,只要实现cache接口就可以把缓存数据灵活的管理起来
4. Mapper代理方式
==============
Mapper代理方式的意思就是:程序员只需要写dao接口,dao接口实现对象由mybatis自动生成代理对象。
5. Mybatis解决JDBC编程的问题
======================
6.Mybatis逆向工程
=============
Mybatis逆向工程实际上就是想自动生成对应的代码,不用自己写对应的映射文件和接口
7.本章总结
自我介绍一下,小编13年上海交大毕业,曾经在小公司待过,也去过华为、OPPO等大厂,18年进入阿里一直到现在。
深知大多数Java工程师,想要提升技能,往往是自己摸索成长或者是报班学习,但对于培训机构动则几千的学费,着实压力不小。自己不成体系的自学效果低效又漫长,而且极易碰到天花板技术停滞不前!
因此收集整理了一份《2024年Java开发全套学习资料》,初衷也很简单,就是希望能够帮助到想自学提升又不知道该从何学起的朋友,同时减轻大家的负担。
既有适合小白学习的零基础资料,也有适合3年以上经验的小伙伴深入学习提升的进阶课程,基本涵盖了95%以上Java开发知识点,真正体系化!
由于文件比较大,这里只是将部分目录截图出来,每个节点里面都包含大厂面经、学习笔记、源码讲义、实战项目、讲解视频,并且会持续更新!
如果你觉得这些内容对你有帮助,可以扫码获取!!(备注Java获取)
![img](https://img-blog.csdnimg.cn/img_convert/d20383c081d402e8b37e1b8591950f78.jpeg)
最后,附一张自己面试前准备的脑图:
面试前一定少不了刷题,为了方便大家复习,我分享一波个人整理的面试大全宝典
- Java核心知识整理
- Spring全家桶(实战系列)
Step3:刷题
既然是要面试,那么就少不了刷题,实际上春节回家后,哪儿也去不了,我自己是刷了不少面试题的,所以在面试过程中才能够做到心中有数,基本上会清楚面试过程中会问到哪些知识点,高频题又有哪些,所以刷题是面试前期准备过程中非常重要的一点。
以下是我私藏的面试题库:
很多人感叹“学习无用”,实际上之所以产生无用论,是因为自己想要的与自己所学的匹配不上,这也就意味着自己学得远远不够。无论是学习还是工作,都应该有主动性,所以如果拥有大厂梦,那么就要自己努力去实现它。
最后祝愿各位身体健康,顺利拿到心仪的offer!
《互联网大厂面试真题解析、进阶开发核心学习笔记、全套讲解视频、实战项目源码讲义》点击传送门即可获取!
重要的一点。
以下是我私藏的面试题库:
[外链图片转存中…(img-VA8yFKFn-1713459428221)]
很多人感叹“学习无用”,实际上之所以产生无用论,是因为自己想要的与自己所学的匹配不上,这也就意味着自己学得远远不够。无论是学习还是工作,都应该有主动性,所以如果拥有大厂梦,那么就要自己努力去实现它。
最后祝愿各位身体健康,顺利拿到心仪的offer!
《互联网大厂面试真题解析、进阶开发核心学习笔记、全套讲解视频、实战项目源码讲义》点击传送门即可获取!