首页 > 编程语言 >【JavaWeb】 Mybatis-01-Mybatis的简介:用对话的方式让你明白为什么要使用Mybatis

【JavaWeb】 Mybatis-01-Mybatis的简介:用对话的方式让你明白为什么要使用Mybatis

时间:2022-10-20 12:31:26浏览次数:41  
标签:01 持久 JavaWeb 数据库 JDBC 小游 Mybatis 坦之

一、什么是Mybatis?

MyBatis 是一款优秀的持久层框架,它支持自定义 SQL、存储过程以及高级映射。MyBatis 免除了几乎所有的 JDBC 代码以及设置参数和获取结果集的工作。MyBatis 可以通过简单的 XML注解来配置和映射原始类型、接口和 Java POJO(Plain Old Java Objects,普通老式 Java 对象)为数据库中的记录。

小游:什么是持久层?

坦之:说到持久层,就不得不提Java EE里面的三层架构:表现层业务层持久层。 其中表现层是用来做页面展示的,业务层是用来做逻辑处理的(如对网页请求的处理)、持久层是将数据保存到数据库的(和数据库打交道)

小游:那什么是框架呢?

坦之:框架就是一个半成品的软件,是一套可重复用的通用的、软件基础代码模型。也就是说写一个项目,框架给你处理了一半的代码,而自己在写一半代码,这样就完成了整个项目。比如涂石膏,本来你需要自己雕刻石膏,然后涂上颜色。现在市场上有人制作了石膏,而你则只需要负责涂上颜色。所以在框架的基础上构建软件编写更加的高效规范通用可拓展

二、为什么要引入Mybatis?

小游:同样是处理持久层业务,我手里的JDBC不香了吗?

坦之:JDBC虽然是最基础的连接数据库工具,处理持久层具有强大的力量。但是他的硬编码操作烦琐不适应于这个快速的时代对软件开发的需求。随着人们对软件需求的扩大,人们致力于追求一种更为便捷的,可维护性高的编程工具,Mybatis就是其中的一种。尽管这些编程工具很有B格,但是他们依然是基于JDBC的!

小游:什么是硬编码?

坦之:硬编码的数据通常表示不变的信息,例如物理常量,版本号和静态文本元素。在JDBC中就表现为SQL语句和一些配置,当这些配置被修改的时候,就需要重新打包、重新运行,可维护性就相对差一些。Mybatis基于硬编码的情况,将这些属性和对数据库的操作都写到配置文件里面去,将来读取配置文件即可

【JavaWeb】 Mybatis-01-Mybatis的简介:用对话的方式让你明白为什么要使用Mybatis_JavaWeb

有关数据库属性的被写到配置文件里面去

【JavaWeb】 Mybatis-01-Mybatis的简介:用对话的方式让你明白为什么要使用Mybatis_持久层_02

有关数据库操作的也写到文件里面去

【JavaWeb】 Mybatis-01-Mybatis的简介:用对话的方式让你明白为什么要使用Mybatis_JavaWeb_03

小游:硬编码我懂了,操作烦琐又体现在哪呢?

坦之: 在连接数据库的时候,所有的数据库参数都要手动设置,对数据库操作获取的结果集也要手动的封装。如下图:

【JavaWeb】 Mybatis-01-Mybatis的简介:用对话的方式让你明白为什么要使用Mybatis_持久层_04

坦之:而Mybatis则采用自动完成的方式,它封装了JDBC的代码,只需要采用很简洁的代码就可以完成相应的功能。MyBatis 免除了几乎所有的 JDBC 代码以及设置参数和获取结果集的工作

坦之:所以Mybatis的简介你懂了吗?

标签:01,持久,JavaWeb,数据库,JDBC,小游,Mybatis,坦之
From: https://blog.51cto.com/u_15807146/5779846

相关文章

  • U161009 [雅礼集训 2017 Day1] 市场
    题目链接U161009[雅礼集训2017Day1]市场题目背景从前有一个贸易市场,在一位执政官到来之前都是非常繁荣的,自从他来了之后,发布了一系列奇怪的政令,导致贸易市场的衰落......
  • 题解 P2224 [HNOI2001]产品加工
    一道很有趣的dp题。这道题是以答案为下标来设定状态,在这种生产问题这个套路还是挺常见的,需要积累一下。我们令\(f_{i,j}\)为前\(i\)个任务\(A\)机器花了\(j\)时......
  • POJ 1201 Intervals 差分约束
    ​​http://poj.org/problem?id=1201​​TLE了很久,因为用了cin.....思路和其他差分约束差不多,​​http://www.cppblog.com/menjitianya/archive/2015/11/19/212292.html​​......
  • 2017 ACM Arabella Collegiate Programming Contest div2的题,部分题目写个题解
    F.MonkeyingAround 维护点在多少个线段上​​http://codeforces.com/gym/101350/problem/F​​题意:有m个笑话,每个笑话的区间是[L,R],笑话种类有1e5,一开始所有猴子都在......
  • bzoj 2301: [HAOI2011]Problem b mobius反演 RE
    ​​http://www.lydsy.com/JudgeOnline/problem.php?id=2301​​设f(i)为在区间[1,n]和区间[1,m]中,gcd(x,y)=i的个数。设F(i)为在区间[1,n]和区间[1,m]中,gcd(x,y)%......
  • Gym - 101147J Whistle's New Car 树上差分
    J.Whistle'sNewCartimelimitpertestmemorylimitpertestinputoutputWhistlehasboughtanewcar,whichhasaninfinitefueltankcapacity.Hediscoveredani......
  • On the way to the park Gym - 101147I 几何
    ​​http://codeforces.com/gym/101147/problem/I​​I.OnthewaytotheparktimelimitpertestmemorylimitpertestinputoutputEngineersaroundtheworldsharea......
  • 01-Jmeter-单个接口练习
    一、环境准备1、启动虚拟机->启动电商项目->获取虚拟机的IP地址  2、启动Jmeter工具二、单个注册接口->正向测试1、添加线程组2、添加HTTP请求(1)协议:http,服务器......
  • ❤️《Mybatis从基础到高级》(建议收藏)❤️
    ❤️Mybatis❤️三连+关注!!!1、简介MyBatis本是apache的一个​​开源项目​​​iBatis,2010年这个​​项目​​​由apachesoftwarefoundation迁移到了[googlecode](https://......
  • [20221018]本地运行与远程运行.txt
    [20221018]本地运行与远程运行.txt--//链接http://blog.tanelpoder.com/2008/02/05/oracle-hidden-costs-revealed-part-1/.--//里面提到一个问题本地运行与远程运行,oracl......