mybatis 依赖于jdbc_大数据基础:Mybatis零基础入门

89c2051cfd0e2e13b9ffdcc95d308eb5.png

在Java企业级开发任务当中,持久层框架的选择,国内市场的主流选择一定有Mybatis的一席之地,从入门来说,Mybatis的学习难度不算高,但是要把Mybatis发挥出真正的效用,还是需要深入学习的。今天的大数据基础分享,我们来讲讲Mybatis零基础入门。

04a9e843fb2ec9a2673e51ef575674d6.png

Mybatis的应用,在实际开发任务当中,比较初级的是直接把MyBatis当成单表数据库操作工具来用,而更高级的用法,是利用MyBatis的关联映射和继承映射,灵活地对SQL语句进行优化,从而提高应用的数据库访问性能。

1、Mybatis简介

(1)Mybatis是一个半ORM(对象关系映射)框架,它内部封装了JDBC,开发时只需要关注SQL语句本身,不需要花费精力去处理加载驱动、创建连接、创建statement等繁杂的过程。程序员直接编写原生态sql,可以严格控制sql执行性能,灵活度高。

(2)MyBatis可以使用XML或注解来配置和映射原生信息,将POJO映射成数据库中的记录,避免了几乎所有的JDBC代码和手动设置参数以及获取结果集。

(3)通过xml文件或注解的方式将要执行的各种statement配置起来,并通过java对象和statement中sql的动态参数进行映射生成最终执行的sql语句,最后由mybatis框架执行sql并将结果映射为java对象并返回。(从执行sql到返回result的过程)。

dfbd8933082525590f3db4b3276a6053.png

2、Mybaits的优点

(1)基于SQL语句编程,相当灵活,不会对应用程序或者数据库的现有设计造成任何影响,SQL写在XML里,解除sql与程序代码的耦合,便于统一管理;提供XML标签,支持编写动态SQL语句,并可重用。

(2)与JDBC相比,减少了50%以上的代码量,消除了JDBC大量冗余的代码,不需要手动开关连接;

(3)很好的与各种数据库兼容(因为MyBatis使用JDBC来连接数据库,所以只要JDBC支持的数据库MyBatis都支持)。

(4)能够与Spring很好的集成;

(5)提供映射标签,支持对象与数据库的ORM字段关系映射;提供对象关系映射标签,支持对象关系组件维护。

a3bca9208c322c195239db1c42b1b34e.png

3、MyBatis的缺点

(1)SQL语句的编写工作量较大,尤其当字段多、关联表多时,对开发人员编写SQL语句的功底有一定要求。

(2)SQL语句依赖于数据库,导致数据库移植性差,不能随意更换数据库。

4、MyBatis框架适用场合

(1)MyBatis专注于SQL本身,是一个足够灵活的DAO层解决方案。

(2)对性能的要求很高,或者需求变化较多的项目,如互联网项目,MyBatis将是不错的选择。

Mybatis从入门阶段来说,其实难度不大,但是想要真正在开发当中灵活运用,还是需要大家多积累实操锻炼经验的。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/556045.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

vue 内置指令

渲染文本 – v-text <!--v-text 指令&#xff1a;1. 作用&#xff1a;向其所在的节点中渲染文本内容2. 与插值语法的区别&#xff1a;v-text 会替换掉节点中的内容&#xff0c;{{xxx}} 则不会 --> <div id"root"><p>{{msg}} {{num}}</p> &g…

java this 三种用法

1.区分成员变量和局部变量 public class ThisDemo {public static void main(String[] args) {Student snew Student("小明明",20);System.out.println(s);}}class Student{String name;int age;public Student(String name, int age) {//注:没有加thisname name;a…

kendo treeview 修改节点显示值_VBA学习笔记60-1: Treeview控件

学习资源&#xff1a;《Excel VBA从入门到进阶》第60集 by兰色幻想本节讲Treeview控件。TreeView控件是以树形结构显示数据的控件。利用TreeView控件&#xff0c;可以设计出树形结构图&#xff0c;便于用户选择不同的项目。总公司人事结构是一级节点&#xff0c;公司一、公司二…

Java之路:this关键字的用法

&#xff08;1&#xff09;this代表当前对象的一个引用。所谓当前对象&#xff0c;指的是调用类中方法或属性的那个对象。 最经常使用this关键字的情况&#xff0c;是在对象的一个属性被方法或构造器的参数屏蔽时&#xff0c;需要调用这个被屏蔽的属性&#xff0c;如下&#xf…

跑分cpu_一加8T现身跑分网站:CPU正式敲定 10月15日见

一加8T将于10月15日发布(海外版将于10月14日发布)&#xff0c;现在关于一加8T的核心规格确认。今天&#xff0c;一加8T现身GeekBench跑分网站&#xff0c;确认该机搭载的是高通骁龙865旗舰处理器&#xff0c;而非高通骁龙865 Plus。与搭载高通骁龙865的一加8相比&#xff0c;一…

初识 react

<!--学 react 的原因&#xff1a;1. 原生 js 操作 DOM 繁琐、效率低&#xff0c;每次都要去获取 DOM每次操作 DOM 都会引起页面的重绘重拍2. 原生 js 没有组件化&#xff0c;代码复用率低react 的特点&#xff1a;1. 采用组件化模式&#xff0c;声明式编码来提高开发效率以及…

Java中static作用及用法详解

1.1概述&#xff1a; static是静态修饰符&#xff0c;什么叫静态修饰符呢&#xff1f;大家都知道&#xff0c;在程序中任何变量或者代码都是在编译时由系统自动分配内存来存储的&#xff0c;而所谓静态就是指在编译后所分配的内存会一直存在&#xff0c;直到程序退出内存才会释…

发那科攻丝回退参数_乐享:发那科MF选配功能诊断小结

小编微信&#xff1a;shukong99999乐享数控&#xff0c;专注数控电气乐享那科选项功能小结大家好&#xff0c;我是乐享数控&#xff0c;好久不见&#xff0c;今天起&#xff0c;给大家多总结&#xff0c;相互交流进步。1发那科MF选项功能诊断小结在调试过程中&#xff0c;除了M…

jsx 语法规范

一、插值语法 – {} const str hello react; const VDOM <h1>{str}</h1>; // 注意&#xff1a;是一对大括号 {} 和 Vue( {{}} ) 区分开二、给标签添加类名 – className "" | {} /*css:.active {background-color: red;} */const VDOM <h1 class…

Java中static关键字的作用与用法

写在前面 这篇总结一下Java中static关键字的作用与用法。 参考文献如下&#xff1a; java]static关键字的四种用法Java中static关键字的作用Java中的static关键字解析Java中static关键字的作用 下面直接分析static关键字的四种基本用法。 修饰成员变量 平时的使用当中&am…

matlab怎么画二维热力图_[原创]Day3.箱线图和热力图的绘制

使用Matplotlib和Seaborn进行绘制箱线图和热力图。箱线图箱线图(boxplot)又称盒式图&#xff0c;可以显示数据的分散情况&#xff0c;由五个数值点组成&#xff1a;最大值(max)-上界、最小值(min)-下界、中位数(median)和上下四分位数(Q1, Q3)。它可以帮我们分析出数据的差异性…

java中的Static、final、Static final各种用法

前言 对Static、final、Static final这几个关键词熟悉又陌生&#xff1f; static 加载&#xff1a;static在类加载时初始化&#xff08;加载&#xff09;完成 含义&#xff1a;Static意为静态的&#xff0c;但凡被static 修饰说明属于类&#xff0c;不属于类的对象。 可修饰…

vue图片点击超链接_10秒钟,告别ppt中难看的超链接

我相信大多数同学在创建超链接的时候都很疑惑为什么字体颜色会变成蓝色&#xff0c;且下方会出现一条横线&#xff0c;能不能把横线去掉或者改变颜色呢&#xff1f;零壹君回答你&#xff1a;能&#xff01;快来跟零壹君一起学习吧&#xff01;选中文字—点击【插入】—【超链接…

组件的 props

一、函数式组件的 props function Demo (props) { // 由于函数式组件没有自己的 this 必须指定 propsreturn (<div><ul><li>{props.name}</li><li>{props.age}</li></ul></div>) }// 抽离挂到组件上面的 props 变量 const pe…

java中static、final 和 static final之间的区别

java中static、final 和 static final之间的区别 static可以修饰&#xff1a;全局属性&#xff0c;方法&#xff0c;代码块&#xff0c;内部类&#xff08;静态内部类或嵌套内部类&#xff09; 由于静态属性和方法是属于该类的所有对象的&#xff0c;所以可以用类名.静态属性…

arr数组怎么取值_记一次思否问答的问题思考:Vue为什么不能检测数组变动

作者 | hfhan来源 | https://segmentfault.com/a/1190000015783546问题描述&#xff1a;Vue检测数据的变动是通过Object.defineProperty实现的&#xff0c;所以无法监听数组的添加操作是可以理解的&#xff0c;因为是在构造函数中就已经为所有属性做了这个检测绑定操作。但是官…

使用 ref 对已渲染到页面的节点进行标记

一、字符串形式的 ref <input type"text" /*给标签打上标记 ipt */ ref"ipt" />拿到标记的节点&#xff0c;对其进行操作 handleClick () > {console.log(this);// 用 ref 标记了的标签&#xff0c;都会保存在 refs 里面console.log(this.refs…

JAVA之private修饰成员方法默认是final型的?

Java之private修饰成员方法默认是final型的&#xff1f; private修饰的成员方法默认是final型的&#xff1f; 用fianl声明的成员方法是最终方法&#xff0c;最终方法不能被子类覆盖&#xff08;重写&#xff09; 从表面上看这个命题是错误的&#xff0c;private访问修饰符修饰…

python高阶函数教学_Python 简明教程 --- 16,Python 高阶函数

对于那些快速算法&#xff0c;我们总是可以拿一些速度差不多但是更容易理解的算法来替代它们。—— Douglas Jones目录高阶函数一般以函数为参数。本节我们介绍Python 中三个方便的高阶函数&#xff0c;分别是&#xff1a;mapreducefilter如果你了解过分布式系统框架---Hadoop&…

react 组件传值

一、父传子 - 函数式组件 function Father (props) {const {money} props; // 解构render() {<div><Child getSonMoney{money}/></div>} }function Child (props) {return (<div><p>我爸爸现在有存款&#xff1a;${props.getSonMoney}</p&g…