Mybaitis入门基础(一)MyBatis的概念引入及工作原理
一:框架前言的那些事
良将难求 胜铁骑三千 益友知遇 领人间无数,三国鼎立中魏、蜀,吴三国的三位皇帝曹操、刘备、刘权他们都有很多谋士(出谋划策的人)。这些谋士其实就是他们出攻城略地的策划方案的,而他们能否成功取决于策划方案是否周全,能高屋建瓴的布局,并且能纵观全局进行排兵布阵。先做什么,再做什么,还是很有说法的,在有天赋的同时还得遵循一定的发展规律,那么众所周知java学习分为三个部分:java基础,java高级,javaweb框架部分。在我们之前的学习过程中我们要想把数据库的数据成功的展示在web页面上,我们使用的是jdbc、servlet、jsp技术。这也是我们接触的最基础入门基的mvc结构,即model数据访问层我们使用的是jdbc,view视图层我们使用的是jsp或html+ajax,controler控制层我们使用的是servlet最为后台java语言和前端jsp和html之间数据传递转换的的中间人,即客户端和后台服务器端数据沟通的媒介和桥梁。
各位大佬都知道数据持久化是使用java技术将内存中的瞬时数据转换为持久化的状态,说白了就是java类型的数据和数据库类型的数据做下转换。服务器端的是将后台java形式的数据送回到客户端进行展示,即将数据响应到客户端。客户端是根据客户的需求将请求发送给服务器端进行请求处理的。
话不多说,先看看我们学习过的mvc结构,代码的调用过程是什么样的。
数据持久化 调用 服务器端 调用 客户端
Model controller view
jdbc new servlet new jsp/html+ajax
那我们再来看看后期学习的框架后的mvc结构,代码的调用过程是什么样的。
数据持久化 调用 服务器端 调用 客户端
Model controller view
mybatis new servlet new jsp/html+ajax/html+vue
mybatis spring servlet spring jsp/html+ajax /html+vue
mybatis spring springMVC spring jsp/html+ajax /html+vue
mybatis spring springBoot spring jsp/html+ajax /html+vue
那么问题来了我们为什么学习新框架呢?他们完成的功能不是一样的吗?那我来考考你,看下你平时是不是关注过生活细节,long long age 很久以前,我们去银行开卡,存钱,取钱,是不是都在柜台上办理,银行有很多个窗口,都有穿着制服的小哥哥小姐姐,在给客户办理业务。但是现在再去银行,你是不是发现,银行窗口办理业务的小哥哥和小姐姐只有一两个了,而大厅里却多了很多机器,很多客户在机器边排队等待自己在机器上办理业务了。这是不是银行在提高了办理业务效率的同时,还节约了人员成本呢?这家银行办事效率提高了,是不是就可以转而去提高服务质量了,这样这家银行是不是就会很受大家欢迎,这家银行是不是就在同时提高了客户满意度的同时,也就能赚钱多多啦?这是不是就达到了双赢的目的。企业嘛就是以赚钱为主,无论是国企还是私企。此处有人就问holly姐说了这么多,这和我们学习框架某个毛线关系啊?别急呀,听我细细道来,其实我们软件开发追根溯源就是围绕着增删改查在玩。企业也想达到双赢,有能赚钱多多,用人成本又能很低。那怎么解决呢?就是优化我们的工作方式和技术。比如原来用jdbc能开发企业级软件项目吗?能,但是开发周期可能会很长,可能用jdbc开发周期要1年,但是用了框架我们可能开发周期编程6个月了。假设是同一个团队,一年开发一个项目任务,创造的价值是200w,每个人的薪资老板只能开8k。如果同样的团队,一年开发两个项目任务,创造的价值是400w,也许老板吃到肉吃饱的同时,会让你们喝汤,这个时候每个人的薪资老板可能给你开到13k左右。这已经是有良心的老板喽!框架其实就是优化了原来最传统的一些开发技术,提高了开发效率,自己写的代码也可以打包优化,重复使用。现在晓得了吧?那么说了大半天,jdbc即将要被替代掉,那它问题出现在哪呢 ?
一:对原生态JDBC问题的总结
新项目要使用mybatis作为持久层框架,由于本人之前一直使用的Hibernate,对mybatis的用法实在欠缺,最近几天计划把mybatis学习一哈,特将学习笔记记录于此,方便大家参考,也方便自己查阅。
话不多说,先看看原始的JDBC程序代码,看看这样的代码存在什么问题。
Mybaitis入门基础(一)MyBatis的概念引入及工作原理的更多相关文章
- AJAX 概念 优势 发展前景 工作原理 底层技术 状态 缺点 框架
1. 概念 Ajax asynchronous JavaScript and XML , 异步js和xml. 这种解释已经过时了, 现在ajax就是, 允许浏览器和服务器通信, 而无需刷新当前页面的技 ...
- MyBatis之分页插件(PageHelper)工作原理
数据分页功能是我们软件系统中必备的功能,在持久层使用mybatis的情况下,pageHelper来实现后台分页则是我们常用的一个选择,所以本文专门类介绍下. PageHelper原理 相关依赖 & ...
- Storm概念讲解和工作原理介绍
Strom的结构 Storm与传统关系型数据库 传统关系型数据库是先存后计算,而storm则是先算后存,甚至不存 传统关系型数据库很难部署实时计算,只能部署定时任务统计分析窗口数据 ...
- 05 入门 - 浅谈 ASP.NET MVC程序的工作原理
目录索引:<ASP.NET MVC 5 高级编程>学习笔记 本篇内容 1. Global.asax文件 2. RouteConfig.cs文件 3. 视图命名和寻址的规则 前面创建了一个简 ...
- mybatis入门基础(二)----原始dao的开发和mapper代理开发
承接上一篇 mybatis入门基础(一) 看过上一篇的朋友,肯定可以看出,里面的MybatisService中存在大量的重复代码,看起来不是很清楚,但第一次那样写,是为了解mybatis的执行步骤,先 ...
- mybatis入门基础(八)-----查询缓存
一.什么是查询缓存 mybatis提供查询缓存,用于减轻数据压力,提高数据库性能. mybaits提供一级缓存,和二级缓存. 1.1. 一级缓存是sqlSession级别的缓存.在操作数据库时需要构造 ...
- C++ STL编程轻松入门基础
C++ STL编程轻松入门基础 1 初识STL:解答一些疑问 1.1 一个最关心的问题:什么是STL 1.2 追根溯源:STL的历史 1.3 千丝万缕的联系 1.4 STL的不同实现版本 2 牛刀小试 ...
- HTML入门基础教程相关知识
HTML入门基础教程 html是什么,什么是html通俗解答: html是hypertext markup language的缩写,即超文本标记语言.html是用于创建可从一个平台移植到另一平台的超文 ...
- Vue学习记录第一篇——Vue入门基础
前面的话 Vue中文文档写得很好,界面清爽,内容翔实.但文档毕竟不是教程,文档一上来出现了大量的新概念,对于新手而言,并不友好.个人还是比较喜欢类似于<JS高级程序设计>的风格,从浅入深, ...
随机推荐
- CSS入门笔记
CSS @author:伏月廿柒 Cascading Style Sheet 层叠级联样式表 CSS:表现(美化) 字体,颜色,边距,高度,宽度,背景图片,网页定位,网页浮动-- CSS发展史 CSS ...
- 深度优先算法--对DFS的一些小小的总结(一)
提到DFS,我们首先想到的是对树的DFS,例如下面的例子:求二叉树的深度 int TreeDepth(BinaryTreeNode* root){ if(root==nullptr)return 0; ...
- spring-boot-关于module自定义jar包打包无法给其他module使用
####世界大坑: 如果仅是使用 <build> <plugins> <plugin> <groupId>org.springframework.boo ...
- Oracle入门基础(三)一一单行函数
SQL> --字符函数 SQL> select lower('Hello World') 转小写,upper('Hello World') 转大写,initcap('hello world ...
- 在 java 中守护线程和本地线程区别?
java 中的线程分为两种:守护线程(Daemon)和用户线程(User). 任何线程都可以设置为守护线程和用户线程,通过方法 Thread.setDaemon(bool on):true 则把该线程 ...
- 那么如何使用WebSQL?
我们需要做的第一步是通过使用"OpenDatabase"函数开放数据库,如下图所示.第一个参数是数据库的名称,接下来是版本,然后一个简单的文本标题,最后的是数据库的大小. var ...
- Atomic 的实现原理
1.直接操作内存,使用Unsafe 这个类 2.使用 getIntVolatile(var1, var2) 获取线程间共享的变量 3.采用CAS的尝试机制(核心所在),代码如下: public fin ...
- selenium 模块使用
selenium 概念:基于浏览器自动化的一个模块,可以模拟浏览器行为 环境的安装:下载selenium模块 selenium和爬虫之间的关联是什么? 便捷的获取页面中动态加载的数据 requests ...
- a标签实现跳转本地页面(html的a链接的href怎样才另起一个页面,一个页面调到另一个html页面)
案例 <a href="http://www.baidu.com" target="_Self">百度</a> 1._Blank(在新页 ...
- SVN之屏蔽不需要提交的xml等文件
SVN之屏蔽不需要提交的xml等文件 在默认"Default changelist"中是我们正常需要提交的文件 在"不需要提交的文件"中存储的是一些线下环境需要 ...