一:框架前言的那些事

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

    git的使用心得 windows版本下载git地址 git config --global user.name 用户名 在使用git前要注册用户名(个人称谓) git config --global ...

  2. Vue实例(1)

    vue入门示例(一) herokang 2019-08-21 15:33:58  12696  收藏 44 分类专栏: 前端 文章标签: vue入门 版权 为了让广大后端人员更快的理解上手vue,我们 ...

  3. 使用过滤器获取系统目录或文件名(java.io)

    import java.io.File;import java.io.FilenameFilter; File[] file = new File("D:\\"); //使用Fil ...

  4. spring-boot-learning-事务处理

     事务处理的重要性: 面对高井发场景, 掌握数据库事务机制是至关重要的,它能够帮助我们在一定程度上保证数据的一致性,并且有效提高系统性能,避免系统产生岩机,这对于互联网企业应用的成败是至关重要的. 以 ...

  5. nginx 负载均衡详解

    配置文件 upstream abc { server 192.168.2.188:8080 weight=1 max_fails=3 fail_timeout=30; 定义集群,weight=权重轮询 ...

  6. 数据库SQL之学习SUM总和套用条件CASE WHEN语句

    1.SQL之学习SUM总和套用条件CASE WHEN语句 2.条件语句CASE WHEN 格式已经在图中写的很明白了 -- 查询t_wzw库中所有数据 总和(条件为t_wzw.birthday > ...

  7. 用一个文件,实现迷你 Web 框架

    当下网络就如同空气一样在我们的周围,它以无数种方式改变着我们的生活,但要说网络的核心技术变化甚微. 随着开源文化的蓬勃发展,诞生了诸多优秀的开源 Web 框架,让我们的开发变得轻松.但同时也让我们不敢 ...

  8. 3. Git安装和使用

    3. Git安装和使用 目的 通过git管理github托管项目代码 下载安装 1)GIt官网下载:https://www.git-scm.com/download/win 2)双击安装 3)选择安装 ...

  9. 我试试这个昵称好使不队项目NABCD指路

    我试试这个昵称好使不队项目NABCD指路:https://www.cnblogs.com/team-development/p/14617203.html

  10. 【Weex笔记】-- Animate.css的使用

    animate.css是一个使用CSS3的animation制作的动画效果的CSS集合,里面预设了很多种常用的动画,且使用非常简单.本文将详细介绍animate.css的使用. 一,安装辅助依赖 np ...