深入JavaWeb技术世界15:深入浅出Mybatis基本原理

  • 时间:
  • 浏览:0

mybatis应用系统进程通过SqlSessionFactoryBuilder从mybatis-config.xml配置文件(也还须要用Java文件配置的辦法 ,须要再加@Configuration)中构建出SqlSessionFactory(SqlSessionFactory是系统进程安全的);

MyBatis框架和有些绝大次要框架一样,须要一有4个配置文件,其配置文件大致如下:

https://github.com/h2pl/Java-Tutorial

万变的外表终将迷惑亲戚朋友的双眼,若果抓住核心亲戚朋友永远不需要迷茫!

2、SqlSessionFactoryBuilder通过Configuration对象生成SqlSessionFactory,用来开启SqlSession。

用最直观的图,来征服你的心!

该系列博文会告诉你要怎样从入门到进阶,从servlet到框架,从ssm再到SpringBoot,一步步地学习JavaWeb基础知识,并上手进行实战,接着了解JavaWeb项目中时不须要使用的技术和组件,包括日志组件、Maven、Junit,等等内容,以便你会更删剪地了解整个JavaWeb技术体系,形成所一群人 的知识框架。为了更好地总结和检验你的学习成果,本系列文章也会提供每个知识点对应的面试题以及参考答案。

删剪流程如下:

https://www.jianshu.com/p/e398435fc1c4

https://segmentfault.com/a/1190000015117926?utm_source=tag-newest#articleHeader4https://blog.csdn.net/u014743069/article/details/30788127https://blog.csdn.net/u014297148/article/details/78693096https://blog.csdn.net/weixin_43184769/article/details/91126687

以上主要成员在一次数据库操作中基本都不涉及,在SQL操作中重点须要关注的是SQL参数那些前一天被设置和结果集为甚转换为JavaBean对象的,这名 有4个过程正好对应StatementHandler和ResultSetHandler类中的处置逻辑。

MyBatis的主要设计目的而是我 让亲戚朋友对执行SQL搞笑的话时对输入输出的数据管理更加方便,而是我方便地写出SQL和方便地获取SQL的执行结果才是MyBatis的核心竞争力。

有然后 ,为那些须要要学习mybatis的工作原理?可能,随着mybatis框架的不断发展,如今可能没法趋于自动化,从代码生成,到基本使用,亲戚朋友甚至不须要动手写一句SQL就还须要完成一有4个简单应用的删剪CRUD操作。

有然后 ,SqlSessionFactory的实例直接开启一有4个SqlSession,再通过SqlSession实例获得Mapper对象并运行Mapper映射的SQL搞笑的话,完成对数据库的CRUD和事务提交,前一天关闭SqlSession。

喜欢搞笑的话麻烦点下Star哈

本文是微信公众号【Java技术江湖】的《走进JavaWeb技术世界》其中一篇,本文次要内容来源于网络,为了把本文主题讲得清晰透彻,也整合了而是我我认为不错的技术博客内容,引用其中了有些比较好的博客文章,如有侵权,请联系作者。

www.how2playlife.com

说明:SqlSession是单系统进程对象,可能它是非系统进程安全的,是持久化操作的独享对象,这类jdbc中的Connection,底层就封装了jdbc连接。

关注公众号后回复“PDF”即可领取30+页的《Java工程师面试指南》强烈推荐,几乎含高所有Java工程师必知必会的知识点。

3、SqlSession对象完成和数据库的交互:

a、用户系统进程调用mybatis接口层api(即Mapper接口中的辦法 )

b、SqlSession通过调用api的Statement ID找到对应的MappedStatement对象

c、通过Executor(负责动态SQL的生成和查询缓存的维护)将MappedStatement对象进行解析,sql参数转化、动态sql拼接,生成jdbc Statement对象

d、JDBC执行sql。

MyBatis 是支持定制化 SQL、存储过程以及高级映射的优秀的持久层框架,其主要就完成2件事情:

本系列文章将派发到我在GitHub上的《Java面试指南》仓库,更多精彩内容请到我的仓库里查看

文章首发于我的所一群人 博客:

(图片来自《深入理解mybatis原理》 MyBatis的派发以及实例分析)

关注公众号后回复“2020”领取我这两年派发的学习资料,含高学精编程、求职面试、算法刷题、Java技术学习、计算机基础和考研等300G资料合集。

微信公众号【Java技术江湖】一位阿里 Java 工程师的技术小站,专注于 Java 相关技术:SSM、SpringBoot、MySQL、分布式、顶端件、集群、Linux、网络、多系统进程,偶尔讲点Docker、ELK,一同也分享技术干货和学习经验,致力于Java全栈开发!

以上配置中,最重要的是数据库参数的配置,比如用户名密码等,可能配置了数据表对应的mapper文件,则须要将其加入到节点下。 

e、借助MappedStatement中的结果映射关系,将返回结果转化成HashMap、JavaBean等存储形态学 并返回。

微信公众号【系统进程员黄小斜】新生代青年聚集地,系统进程员成长充电站。作者黄小斜,职业是阿里系统进程员,身份是斜杠青年,希望和更多的系统进程员交亲戚朋友,一同进步和成长!专注于分享技术、面试、职场等成长干货,这名 次,亲戚朋友一同出发。

在mybatis的基础知识中亲戚朋友可能还须要对mybatis的工作辦法 窥斑见豹(参考:《MyBatis————基础知识》)。

从原生mybatis到mybatis-spring,到mybatis-plus再到mybatis-plus-spring-boot-starter。spring在发展,mybatis同样在随之发展。

可能对本系列文章有那些建议,可能是有那些疑问搞笑的话,也还须要关注公众号【Java技术江湖】联系作者,欢迎你参与本系列博文的创作和修订。

1、加载mybatis全局配置文件(数据源、mapper映射文件等),解析配置文件,MyBatis基于XML配置文件生成Configuration,和一有4个个MappedStatement(包括了参数映射配置、动态SQL搞笑的话、结果映射配置),其对应着标签项。