一:框架前言的那些事

良将难求 胜铁骑三千 益友知遇 领人间无数,三国鼎立中魏、蜀,吴三国的三位皇帝曹操、刘备、刘权他们都有很多谋士(出谋划策的人)。这些谋士其实就是他们出攻城略地的策划方案的,而他们能否成功取决于策划方案是否周全,能高屋建瓴的布局,并且能纵观全局进行排兵布阵。先做什么,再做什么,还是很有说法的,在有天赋的同时还得遵循一定的发展规律,那么众所周知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的概念引入及工作原理的更多相关文章

  1. AJAX 概念 优势 发展前景 工作原理 底层技术 状态 缺点 框架

    1. 概念 Ajax asynchronous JavaScript and XML , 异步js和xml. 这种解释已经过时了, 现在ajax就是, 允许浏览器和服务器通信, 而无需刷新当前页面的技 ...

  2. MyBatis之分页插件(PageHelper)工作原理

      数据分页功能是我们软件系统中必备的功能,在持久层使用mybatis的情况下,pageHelper来实现后台分页则是我们常用的一个选择,所以本文专门类介绍下. PageHelper原理 相关依赖 & ...

  3. Storm概念讲解和工作原理介绍

    Strom的结构 Storm与传统关系型数据库     传统关系型数据库是先存后计算,而storm则是先算后存,甚至不存     传统关系型数据库很难部署实时计算,只能部署定时任务统计分析窗口数据   ...

  4. 05 入门 - 浅谈 ASP.NET MVC程序的工作原理

    目录索引:<ASP.NET MVC 5 高级编程>学习笔记 本篇内容 1. Global.asax文件 2. RouteConfig.cs文件 3. 视图命名和寻址的规则 前面创建了一个简 ...

  5. mybatis入门基础(二)----原始dao的开发和mapper代理开发

    承接上一篇 mybatis入门基础(一) 看过上一篇的朋友,肯定可以看出,里面的MybatisService中存在大量的重复代码,看起来不是很清楚,但第一次那样写,是为了解mybatis的执行步骤,先 ...

  6. mybatis入门基础(八)-----查询缓存

    一.什么是查询缓存 mybatis提供查询缓存,用于减轻数据压力,提高数据库性能. mybaits提供一级缓存,和二级缓存. 1.1. 一级缓存是sqlSession级别的缓存.在操作数据库时需要构造 ...

  7. C++ STL编程轻松入门基础

    C++ STL编程轻松入门基础 1 初识STL:解答一些疑问 1.1 一个最关心的问题:什么是STL 1.2 追根溯源:STL的历史 1.3 千丝万缕的联系 1.4 STL的不同实现版本 2 牛刀小试 ...

  8. HTML入门基础教程相关知识

    HTML入门基础教程 html是什么,什么是html通俗解答: html是hypertext markup language的缩写,即超文本标记语言.html是用于创建可从一个平台移植到另一平台的超文 ...

  9. Vue学习记录第一篇——Vue入门基础

    前面的话 Vue中文文档写得很好,界面清爽,内容翔实.但文档毕竟不是教程,文档一上来出现了大量的新概念,对于新手而言,并不友好.个人还是比较喜欢类似于<JS高级程序设计>的风格,从浅入深, ...

随机推荐

  1. git 多人在同一分支上迭代开发时,如何保证分支提交历史保持线性

    背景 最近我们组几个同事都投入到了一个新项目,互相之间的功能耦合比较紧密,因此,是打算从master上新拉一个分支,可以理解为我们几个人的开发分支,以develop代替. 一开始,我们是打算像svn那 ...

  2. 请说说Struts1和Struts2的区别?

      特性 Struts1 Struts2 Action Struts1.x要求Action类要扩展自一个抽象基类.Struts1.x的一个共有的问题是面向抽象类编程而不是面向接口编程. Struts2 ...

  3. BLOB 和 TEXT 有什么区别?

    BLOB 是一个二进制对象,可以容纳可变数量的数据.TEXT 是一个不区分大小写 的 BLOB. BLOB 和 TEXT 类型之间的唯一区别在于对 BLOB 值进行排序和比较时区分大小 写,对 TEX ...

  4. Dubbo 和 Dubbox 之间的区别?

    Dubbox 是继 Dubbo 停止维护后,当当网基于 Dubbo 做的一个扩展项目,如 加了服务可 Restful 调用,更新了开源组件等.

  5. 一个".java"源文件中是否可以包含多个类(不是内部类)?有什么限制?

    可以,但一个源文件中最多只能有一个公开类(public class)而且文件名必须和公开类的类名完全保持一致.

  6. Oracle入门基础(一)一一基本查询

    SQL> --当前用户 SQL> show user SQL> --当前用户下的表 SQL> select * from tab; TNAME TABTYPE CLUSTERI ...

  7. 详细描述一下 Elasticsearch 更新和删除文档的过程?

    1.删除和更新也都是写操作,但是 Elasticsearch 中的文档是不可变的,因此不 能被删除或者改动以展示其变更: 2.磁盘上的每个段都有一个相应的.del 文件.当删除请求发送后,文档并没有真 ...

  8. 《手把手教你》系列基础篇(八十四)-java+ selenium自动化测试-框架设计基础-TestNG日志-上篇(详解教程)

    1.简介 TestNG还为我们提供了测试的记录功能-日志.例如,在运行测试用例期间,用户希望在控制台中记录一些信息.信息可以是任何细节取决于目的.牢记我们正在使用Selenium进行测试,我们需要有助 ...

  9. 集合流之"交集(相同)和差集(区别的)"的使用

    一.需求 今天做的是将两个字符串转为数组后再转集合,然后利用集合的流stream来进行差集过滤 二.差集代码 差集:将两个集合相同的数据去掉,留下不同的数据 1 @Test 2 public void ...

  10. Java根路径设置(在获取本地路径时会获取到这个文件夹,,这样就可以专门放配置文件了)

    在获取本地路径时会获取到这个文件夹,,这样就可以专门放配置文件了