1_MyBatis入门-1_认识框架

news2024/11/15 11:32:48

原生JDBC实现CURD的问题

1 编码繁琐

2 需要我们自己将结果集映射成对象

3 性能不太好  连接池 缓存

4 SQL语句和java代码的耦合度特别高

5 … …

MyBatis 本是Apache的一个开源项目iBatis, 2010年这个项目由Apache Software Foundation 迁移到了Google Code,且改名为MyBatis 。2013年11月迁移到GitHub。iBATIS一词来源于“internet”和“abatis”的组合,是一个基于Java的持久层框架。

MyBatis 是一款优秀的持久层框架,它支持定制化 SQL、存储过程以及高级映射。MyBatis 避免了几乎所有的 JDBC 代码和手动设置参数以及获取结果集。MyBatis 可以使用简单的 XML 或注解来配置和映射原生信息,将接口和 Java 的 POJOs(Plain Ordinary Java Object,普通的 Java对象)映射成数据库中的记录。

框架(Framework)是一个框子——指其约束性,也是一个架子——指其支撑性。是一个基本概念上的结构,用于去解决或者处理复杂的问题。框架这个广泛的定义使用的十分流行,尤其在软件概念。

框架( Framework )对于java来说,就是一系列为了解决特定问题而定义的一系列接口和实现类,在组织框架代码时,使用了一系列优秀的设计模式,使代码无论在性能上还是API操作上得到很大提升.框架可以看做是项目开发的半成品,基本的底层操作已经封装完毕,通过框架,程序员可以从底层代码中解脱出来,专注于业务逻辑的完成和性能的优化。框架规定了你的应用的体系结构。它定义了整体结构,类和对象的分割,各部分的主要责任,类和对象怎么协作,以及控制流程。框架预定义了这些设计参数,以便于应用设计者或实现者能集中精力于应用本身的特定细节。

如果将开发完成的软件比作是一套已经装修完毕的新房,那框架就好比是一套已经修建好的毛坯房。用户直接购买毛坯房,建筑质量和户型合理有保证,还省去了自己建造房屋的时间,一举多得。

在开发过程是使用框架,同样可以保证减少开发时间、降低开发难度,并且还保证设计质量。好比和世界上最优秀的软件工程师是一个项目的,并且他们完成的还是基础、全局的工作。想想是不是很嗨的一件事情。

框架还有一个作用是约束。莎士比亚说 ,"一千个观众眼中有一千个哈姆雷特 " 即仁者见仁 ,智者见智 .说每个人都会对作品有不同的理解,每个人对待任何事物都有自己的看法,一千个人就有可能有一千种不同的看法 1000人心中有 1000个哈姆雷特。同样的技术解决同样的问题会产生不同流程和风格的解决方案,而采用一种框架其实就是限制用户必须使用其规定的方案来实现, 可以降低程序员之间沟通以及日后维护的成本

常用的基于JavaEE的三大开源框架,已经从SSH、SSH2过渡到了SSM:SpringMVC、Spring、MyBatis >>> springBoot

总之,框架是一个半成品,已经对基础的代码进行了封装并提供相应的API,开发者在使用框架是直接调用封装好的API可以省去很多代码编写,从而提高工作效率和开发速度。

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

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

相关文章

java高级--Elasticsearch

一、概述搜索引擎 1.1 什么是搜索引擎 概念:用户输入想要的关键词,返回含有该关键词的所有信息。 场景: 1、互联网搜索:谷歌、百度、各种新闻首页 2、 站内搜索(垂直搜索):企业OA查询订单、人员…

Linx基础(8)shell基础

该文章主要为完成实训任务,详细实现过程及结果见【参考文章】 参考文章:https://howard2005.blog.csdn.net/article/details/127139576?spm1001.2014.3001.5502 文章目录一、常用shell命令1. 管道命令任务1、查看/etc目录信息前5行信息任务2、查看/etc/…

【谷歌新作】Transformer杀入机器人领域,RT-1:97%成功率,轻松完成700多条控制指令

谷歌机器人团队等在机器人领域构建了一个多任务 transformer 模型,显著改进了对新任务、环境和对象的零样本泛化。 我们知道,机器学习(ML)多个子领域(如 NLP 和 CV)的最新重大进展通过一种共享的通用方法实…

ZYNQ之FPGA学习----SPI协议驱动模块仿真实验

1 SPI通信协议简介 SPI通信协议基础知识学习:硬件设计基础----通信协议SPI 2 实验任务 设计SPI驱动模块,并进行仿真验证,观察仿真波形 3 实验设计 3.1 创建工程 新建工程,操作如图所示: 输入工程名和路径&#x…

m基于K-means聚类算法和神经网络的模糊控制器设计matlab仿真

目录 1.算法描述 2.仿真效果预览 3.MATLAB核心程序 4.完整MATLAB 1.算法描述 聚类就是按照某个特定标准把一个数据集分割成不同的类或簇,使得同一个簇内的数据对象的相似性尽可能大,同时不在同一个簇中的数据对象的差异性也尽可能地大。即聚类后同一…

React学习23(redux基本使用)

理解 1)学习文档 英文文档:https://redux.js.org/ 中文文档:https://www.redux.org.cn/ github:https://github.com/react.js/redux 2)redux是什么 redux是一个专门用于状态管理的JS库(不是react插件库) …

JavaScript中的4种for循环

这里介绍了4中for循环的方法。 注&#xff1a;这里不介绍do while循环。 普通for循环 这个应该是最常规的for循环了&#xff0c;按照数组下标遍历。 for (var i 0; i < 3; i) {console.log(i); }var arr [{"text":"text2","key":1},{&q…

IIS 使用 office365 SMTP relay

IIS上设置smtp 代理不是难事&#xff0c;但是如果使用office365就比较复杂点&#xff0c;弄不好会陷在里面。 一.office365 SMTP的选项 先了解一下office365对于smtp的三个选项&#xff0c;对应三张图及对比。 第一种方式&#xff0c;是使用office365的邮箱账号&#xff0c;通…

《小白WEB安全入门》02. 开发篇

开发篇初识HTML潜在漏洞初识CSS潜在漏洞初识JS潜在漏洞初识后端潜在漏洞后端能做什么后端种类后端框架潜在漏洞本系列文章只叙述一些超级基础理论知识&#xff0c;极少有实践部分 本文涉及到的语言需自行掌握 初识HTML潜在漏洞 HTML指的是超文本标记语言&#xff08;Hyper Tex…

math_基本导数公式@积分公式@部分推导

文章目录导数积分公式表&#x1f388;积分计算器pictures versionmarkdown Table version&#x1f388;&#x1f388;&#x1f388;&#x1f388;Notes补充几个积分公式的推导和记忆方法&#x1f388;x2a2x^2\pm{a^2}x2a2a2−x2\sqrt{a^2-{x^2}}a2−x2​x2−a2\sqrt{x^2-a^2}x2…

【C++天梯计划】1.13 广搜(BFS)(search widely)

文章目录什么是广搜?与深搜的对比实际应用例题1&#xff1a;快乐的马里奥题目描述输入输出样例代码1代码2例题2&#xff1a;迷宫出口题目描述输入输出样例思路代码&#x1f386;&#x1f389;&#x1f389;&#x1f389;&#x1f389;&#x1f389;&#x1f389;&#x1f389;…

解释最小二乘法(最小平方法)?

Reference: https://blog.csdn.net/Rosie9/article/details/119717881 &#xff08;二乘 aa 平方&#xff09; 最小化误差平方和残差平方和最小&#xff0c;是一种数学优化技术。 问题&#xff1a;对于一元线性回归模型, 假设从总体中获取了n组观察值&#xff08;X1&#x…

【财务】FMS财务管理系统---应收管理

笔者前面介绍了FMS财务管理系统相关逻辑结构&#xff0c;本篇文章继续对应收管理进行了系统的介绍&#xff0c;希望通过此文能够加深你对FMS财务管理系统的认识。 上一篇主要介绍了财务进销存系统的数据流与模块组成&#xff0c;知道了FMS系统中数据的来源并从系统结构上说明了…

SAP Gateway Foundation Client Proxy 的使用方法

根据实际使用场景&#xff0c;SAP OData 客户端代理配置有多种消费类型和 OData 版本。 OData Client Proxy是ABAP中OData服务消费中客户端&#xff08;服务的消费者&#xff09;和服务实现&#xff08;数据提供&#xff09;之间的接口。 这使 ABAP 开发人员能够创建 OData 客…

Android核心技术——Coil 解析与使用

概述 Coil 是一个非常年轻的图片加载库&#xff0c;在 2020 年 10 月 22 日才发布了 1.0.0 版本&#xff0c;但却受到了 Android 官方的推广&#xff0c;在 Android Developers Backstage 这个博客中专门聊过一期。推广的原因比较简单&#xff1a;一方面是这个库确实做得很好&…

双机高速互联

双机高速互联 配置ip[非必须] 配置ip步骤是可以省略的, 但是如果你希望每次重新连接时候不用反复为新识别的网络配置成特定专用网络然后共享, 或者是每次为共用网络开启网络发现, 可以固定下网络ip, 这样每次网络发现都是不用重新设置的 配置如下 192.168.1.1 主机配置 19…

演讲类或观点类的爆款短视频脚本是怎样写出来的?模板分享

演讲类或观点类的爆款短视频脚本是怎样写出来的&#xff1f;模板分享 今天刷到一个讲全职妈妈价值的短视频&#xff0c;点赞量近千万&#xff0c;拆解分析了一下。 加上最近在我赢助手小禾呈序学到的观点类短视频脚本文案的模板&#xff0c;分析给大家看看&#xff1a; 第一部…

初探React环境搭建与运行

在家看React 知识&#xff0c;在本地环境搭建&#xff0c;记录下来&#xff0c;方便查看。 环境前置&#xff1a;Nodejs 14 及以上 网站地址&#xff1a;React中文官网 一、方式一命令生成项目 通过 create-react-app脚手架 来创建 React项目&#xff0c;其中 npx 是 npm5.2 …

68、4K-NeRF:高分辨率重建

简介 官网&#xff1a;https://github.com/frozoul/4K-NeRF 基于nerf方法的渲染过程通常依赖于一种像素方式&#xff0c;在这种方式中&#xff0c;射线(或像素)在训练和推断阶段都是独立处理的&#xff0c;这限制了其描述微妙细节的表示能力&#xff0c;特别是当提升到极高分…

机器学习——04朴素贝叶斯

机器学习——04朴素贝叶斯 参考资料 AIlearningMachine-Learning-in-Action庞善民.西安交通大学机器学习导论2022春PPT 更多原理请参考本人另一篇博客&#xff1a;[机器学习导论]——第六课——贝叶斯分类器 使用Jupyter进行练习&#xff0c;python3 一、知识准备 贝叶斯…