作为一名程序员我不忘初心,大厂面经合集_普通网友的博客-程序员秘密

技术标签: 程序员  经验分享  面试  java  

在这里分享一份 [mybatis从入门到精通] 的强力教程,定能够助你一臂之力。

Mybatis基本介绍

  1. ORM和MyBatis
  2. 对象/关系数据库映射(ORM)
  3. 基本映射方式
  4. 流行的ORM框架简介

目前流行的编程语言,例如Java、 C#等,都是面向对象的编程语言;而目前主流的数据库产品,例如Oracle、DB2等,依然是关系数据库。编程语言和底层数据库的发展不协调,催生出了ORM框架,ORM框架可作为面向对象编程语言和数据库之间的桥梁。

确切地说,MyBatis 并不完全是一种ORM框架,它的设计思想和ORM相似,只是它允许开发,人员直接编写SQL语句,使得访问数据库更加灵活,更准确地说,它应该是一种“SQL Mapping”框架。

Mybatis的体系结构

  1. SqlSessionFactory
  2. SqlSession
  3. MyBatis的配置文件结构
  4. settings设置
  5. typeAliases类型命名
  6. typeHandlers类型处理器
  7. objectFactory对象工厂
  8. environments配置环境
  9. mapper映射器

通过前面的介绍可以知道,MyBatis 的持久化解决方案将用户从原始的JDBC访问中解放出来,用户只需要定义需要操作的SQL语句,无须关注底层的JDBC操作,就可以面向对象的方式进行持久层操作。底层数据库连接的获取、数据访问的实现、事务控制等都无须用户关心,从而将应用层从底层的JDBC/JTAAPI抽取出来。通过配置文件管理JDBC连接,让MyBatis解决持久化访问的实现。

MyBatis中的常用对象有SqSessionFactory和SlSession。

Mybatis的关联映射和动态SQL

  1. 一对一
  2. 一对多
  3. 多对多
  4. 动态SQL

关联关系是面向对象分析、面向对象设计最重要的知识,MyBatis完全可以理解这种关联关系,如果映射得当,MyBatis的关联映射将可以大大简化持久层数据的访问。关联关系大致有如下分类。

Mybatis的事务管理以及缓存机制

  1. 事务的概念
  2. Transaction接口
  3. 事务的配置创建和使用
  4. 一级缓存( SqlSession级别)
  5. 二级缓存(mapper级别)

每个业务逻辑都是由一系列数据库 访问完成的,这-系列数据库访间可能会修改多条数据记录,这一系列修改应该是一个整体,绝不能仅修改其中的几条数据记录。也就是说,多个数据库原子访问应该被绑定成一个整体,这就是事务。事务是一个最小的逻辑执行单元,整个事务不能分开执行,要么同时执行,要么同时放弃执行。

Mybatis注解配置

  1. MyBatis常用注解
  2. MyBatis注解的插入、修改、删除和查询操作
  3. MyBatis注解的一对一、一对多和多对多操作
  4. MyBatis注解的动态SQL

前面介绍了MyBatis的基本用法、关联映射、动态SQL和缓存机制等知识,其所有的配置都是使用XML完成,但是大量的XML配置文件的编写是非常繁琐的,因此MyBatis也提供了更加简便的基于注解(annotation) 的配置方式。

Spring4整合Mybatis3

  1. 开发环境搭建
  2. 准备所需的jar包
  3. 准备数据库资源
  4. 完成配置文件
  5. 持久层功能实现
  6. 服务层功能实现
  7. 控制层功能实现
  8. jsp页面
  9. 测试Spring4整合MyBatis3

在实际的项目开发中,我们需要将Spring和MyBatis进行整合,从而使用Spring 依赖注入以减少代码的耦合,使用Spring MVC处理请求并作出响应,使用MyBatis更加简捷地完成数据库操作。这里将重点介绍Spring和MyBatis的整合过程。

文档的最后一部分是项目实战

  1. 人事管理系统功能模块设计
  2. 人事管理系统持久化组件设计
  3. 人事管理系统业务逻辑组件设计
  4. Spring MVC整合MyBastis优势

最后将会综合运用前面所介绍的知识来开发一个简单的人事管理 (HRM)系统。该系统包括用户管理、部门管理、职位管理、员工管理、公告管理、下载中心等常用的人事管理系统功能。

本系统采用前面介绍的Java EE架构: Spring MVC + MyBatis3.4,该系统架构成熟,性能良好,运行稳定。Spring的IOC容器负责管理业务逻辑组件、持久层组件及控制层组件,这样可以充分利用Spring的依赖注入的优势,进一步增强系统的解耦性,从而提高应用的可扩展性,降低系统重构的成本。

这里详细介绍了一个完整的JavaEE项目:人事管理系统,在此基础上可以扩展出企业的HRM系统、OA系统等。因为企业平台本身的复杂性,所以本项目涉及的表达到6个,而且各个模块的业务逻辑也比较复杂,这些对初学者可能有一定难度, 但只要读者先认真阅读本书前面所介绍的知识,并结合上述的讲解,再配合资源文件中的案例代码,则一定可以掌握这里所介绍的内容,也是将理论知识应用到实际开发的典范

最后

金三银四马上就到了,希望大家能好好学习一下这些技术点,需要领取这些学习资料和面试笔记的朋友请**赶紧点击这里免费获取!**

学习视频:

大厂面试真题:

ttps://docs.qq.com/doc/DSmxTbFJ1cmN1R2dB)**

学习视频:

[外链图片转存中…(img-0M1J36o6-1624885327942)]

大厂面试真题:

版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
本文链接:https://blog.csdn.net/m0_57431076/article/details/118312221

智能推荐

空洞卷积学习_。七十二。的博客-程序员秘密

普通卷积: 膨胀卷积: 两者同样采用3×3的卷积。但膨胀卷积的kernel之间存在间隙,...

干货!开发外贸新客户方法大汇总,超全!_柳若涵的博客-程序员秘密

各大搜索引擎必应:http://cn.bing.com/谷歌地图网址:http://r6d.cn/bxnpe/雅虎:https://search.yahoo.com/俄罗斯搜索引擎:https://yandex.com日本:https://www.goo.ne.jp/美国:http://www.search.aol.com美国:http://www.webcrawler.com/B2B平台找客户http://www.alibaba.comhttp://www.okchem.comht

uboot及linux内核,uboot如何启动内核_裴崽崽的博客-程序员秘密

导读ARM设备如何通过uboot启动Linux内核uboot和内核就是一个裸机程序(1)uboot的本质就是就是一个复杂点的裸机程序,和ARM部分写的裸机程序没有本质区别。(2)内核本身也是一个裸机程序,和uboot、裸机程序无本质区别。要说不同的地方,那就是内核运行起来后,在软件上分为内核层和应用层,分层后两层的权限不同,内存访问和设备操作的管理上更加精细(内核可以随便访问各种硬件,而应用程序只...

php导航自助收录源码,最近网上流行的导航网秒收录网站php源码_翠袂天寒的博客-程序员秘密

最近网上非常流行的秒收录网站的PHP导航网源码网站自动秒收录,功能贼多。1、三种超强蜘蛛爬行方法。2、可瞬间躺着创建具有一个成千上万个数据的"大站"。3、作者对SEO指标进行了最大程度的优化,顶级SEO优化。4、开发多种适合各行各业的超级蜘蛛池。5、程序样式可自行修改,作者仅对单个php函数进行数据加密。6、后台支持全自动收集,无需人工维护。7、该程序可以在几分钟内创建一个包含上万条数据的大型站点...

MySQL报错:Parameter index out of range (2 > number of parameters, which is 1).解决_Tianhao_521的博客-程序员秘密

Exceptions:Parameter index out of range (2 > number of parameters, which is 1).动态sql语句中where标签使用的时候,由于在select标签中按快捷键添加了注释,导致出现错误,-- 只要把注释去掉或者改成正确的注释格式就可以成功运行。...

随便推点

图像RGBA转BGRA方法(SIMD+TBB/cv::parallel_for_)的测试对比_马马虎虎半吊子的博客-程序员秘密_rgba测试

RGBA2BGRA图像通道转换的几种并行优化方法以及和Opencv 的 cvtColor的对比。

微服务时代的DDD:实现领域模型_Docker_的博客-程序员秘密

书接上文上次说到,我们看到DDD和微服务是如何两情相悦的,直到深入到实现的粒度时,我们发现没这么乐观。微服务天生应该是:自包含的 (包含数据,更希望是领...

程序员3年工资从7千到2万2,晒出跳槽经历!网友:厉害!_CSDN学习的博客-程序员秘密

最近在脉脉职言看到一个帖子:2016年毕业,就去了互联网公司,从第一份工资7千,3年后跳了5家公司,拿到了2万2。都说跳槽频繁,企业会比较忌讳这样的人才。但是换个角度想,如果真的在3年内积累了很多的项目经验和技术经验,这样的简历,相信很少有公司会拒绝。关于跳槽这件事,万维钢曾在《指导生活的算法》中提到对年轻人的建议:理性的人应该知道什么时候停止。你先估计一下自己做一件事儿,...

python入门基本操作(二)--字符串_小奶狼儿的博客-程序员秘密

前一篇是python入门基本操作https://blog.csdn.net/weixin_46341320/article/details/105216923在此声明,此前和之后博文都是在python2操作入门基本操作有好几篇,大概有字符串、列表、元祖、字典、集合、运算等操作,熟悉了这些操作,我觉得已经半只脚踏上python之路了,然后有兴趣的童鞋也可以在网上找一些相关的题目挑战一下,巩固知...

婚恋交友网站开发制作,第一篇_weixin1_43144260的博客-程序员秘密

也是开头篇,大家好,最近有一个这样的需求,就是公司要求,模仿国内一家交友网站来做一套属于自己公司的婚恋交友网站,所有就把婚恋交友网站开发制作过程记录下来,方便后期学习和开发使用,我想要实现的功能如下,先来几张效果图。手机版电脑版明天再上传,,,,,,...

怎样判断一个java技术人的技术水平?_RapperBaby的博客-程序员秘密_如何判断java开发能力水平

怎样判断一个java技术人的技术水平?1、要判断一个java技术员水平,首先要看经验。原因就是java是一个开源语言,各色各样的框架只要有人想得到,或者别的语言出现过,都有可能在java里出现,经验就是指与各种框架、思想打交道的时间。这个时间越长,对问题及平台的了解也就越全面,在很多时候比如设计框架等会走在前面,考虑到很多未来可能出现的问题,提前解决。其次也是经验,这次是指java外其它内...

推荐文章

热门文章

相关标签