一:框架前言的那些事

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

    回顾一下前文<三分钟掌握共享内存模型和 Actor模型> Actor vs CSP模型 传统多线程的的共享内存(ShareMemory)模型使用lock,condition等同步原语来强行 ...

  2. 如何选择 Linux 操作系统版本?

    一般来讲,桌面用户首选 Ubuntu :服务器首选 RHEL 或 CentOS ,两者中首选 CentOS .根据具体要求:· 安全性要求较高,则选择 Debian 或者 FreeBSD .· 需要使 ...

  3. mysql 实现类似Oracle 或 db2 sequence

    第一步:创建一个索引管理表,其中包含,索引名称.最小值.最大值.当前值.增量,并设置主键为索引名称. CREATE TABLE TB_SEQUENCE ( SEQ_NAME VARCHAR(50) N ...

  4. Postman请求报错:Error:getaddrinfo ENOENT 50.88.88.88

    一.问题来源 今天发布一个新开发的项目到通州现场,内容是开放几个接口给第三方调用,需要现场部署的同事使用postman调用测试一下,现场同事使用postman调用后反馈有如下错误: 二.解决方法 发现 ...

  5. Springmvc入门基础(六) ---拦截器应用demo

    1.拦截器定义 Spring Web MVC 的处理器拦截器类似于Servlet 开发中的过滤器Filter,用于对处理器进行预处理和后处理. 2.拦截器demo demo需求: 拦截用户请求,判断用 ...

  6. Vue基于webpack自动装载配置

    Vue的自动装载配置是在 @cli/cli-service 包中,配置文件的目录在 lib/config/  下的文件,css.js 文件是配置样式的处理,先从这里开始了解把 CSS配置流程 对应着这 ...

  7. 学习k8s(一)

    一.安装及介绍 1.k8s架构 2.核心组件 3.其他组件 4.安装方式 yum安装: 1.5 最简单,版本低,适合学习 二进制安装: 最繁琐,可以用saltstack安装 kubeadm安装: 谷歌 ...

  8. leetcode_9回文数

    给你一个整数 x ,如果 x 是一个回文整数,返回 true :否则,返回 false . 回文数是指正序(从左向右)和倒序(从右向左)读都是一样的整数. 例如,121 是回文,而 123 不是. 来 ...

  9. d面试题汇总

    HTML Doctype作用,HTML5 为什么只需要写<!DOCTYPE HTML>? html5有哪些新特性?移除了哪些元素? 简述一下你对HTML语义化的理解? 行内元素有哪些,块级 ...

  10. 从零开始:微信小程序新手入门宝典《一》

    为了方便大家了解并入门微信小程序,我将一些可能会需要的知识,列在这里,让大家方便的从零开始学习: 一:微信小程序的特点 张小龙:张小龙全面阐述小程序,推荐通读此文: 小程序是一种不需要下载.安装即可使 ...