为了写一份MyBatis学习笔记,腾讯T4大牛竟然每天熬夜到凌晨三点

  • 通过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开发全套学习资料》,初衷也很简单,就是希望能够帮助到想自学提升又不知道该从何学起的朋友,同时减轻大家的负担。img

既有适合小白学习的零基础资料,也有适合3年以上经验的小伙伴深入学习提升的进阶课程,基本涵盖了95%以上Java开发知识点,真正体系化!

由于文件比较大,这里只是将部分目录截图出来,每个节点里面都包含大厂面经、学习笔记、源码讲义、实战项目、讲解视频,并且会持续更新!

如果你觉得这些内容对你有帮助,可以扫码获取!!(备注Java获取)

img

最后,附一张自己面试前准备的脑图:

image

面试前一定少不了刷题,为了方便大家复习,我分享一波个人整理的面试大全宝典

  • Java核心知识整理

image

  • Spring全家桶(实战系列)

image.png

Step3:刷题

既然是要面试,那么就少不了刷题,实际上春节回家后,哪儿也去不了,我自己是刷了不少面试题的,所以在面试过程中才能够做到心中有数,基本上会清楚面试过程中会问到哪些知识点,高频题又有哪些,所以刷题是面试前期准备过程中非常重要的一点。

以下是我私藏的面试题库:

image

很多人感叹“学习无用”,实际上之所以产生无用论,是因为自己想要的与自己所学的匹配不上,这也就意味着自己学得远远不够。无论是学习还是工作,都应该有主动性,所以如果拥有大厂梦,那么就要自己努力去实现它。

最后祝愿各位身体健康,顺利拿到心仪的offer!
《互联网大厂面试真题解析、进阶开发核心学习笔记、全套讲解视频、实战项目源码讲义》点击传送门即可获取!
重要的一点。

以下是我私藏的面试题库:

[外链图片转存中…(img-VA8yFKFn-1713459428221)]

很多人感叹“学习无用”,实际上之所以产生无用论,是因为自己想要的与自己所学的匹配不上,这也就意味着自己学得远远不够。无论是学习还是工作,都应该有主动性,所以如果拥有大厂梦,那么就要自己努力去实现它。

最后祝愿各位身体健康,顺利拿到心仪的offer!
《互联网大厂面试真题解析、进阶开发核心学习笔记、全套讲解视频、实战项目源码讲义》点击传送门即可获取!

  • 17
    点赞
  • 21
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值