iBatis第一章:基础知识概述 & MVC思想
一、java是一门十分受开发人员欢迎的语言,在开发语言排行榜中名列前茅,人们对其看法不尽相同,就我自身感受而言,我觉得java语言的主要优势体现在如下几方面:
1、java属于开源语言,开发人员可以找到丰富的资料,不断完善这门语言。
2、java语言拥有众多的框架,开发人员可以根据需要,自行组合各种框架在一起,实现高效的开发。
软件开发语言排行榜:
二、“框架”的概念:框架一词在软件工程中有其特定的含义,类似于其他工程的框架一样,是对工程的抽象出来的特定的结构进行概述的一个词语。例如我们建一所高楼,最主要的就是要先搭建一个框架结构,搭建完这个框架结构后,整个工程的核心部分就基本搞定了,剩下的工作就是在这个框架中进行填充和修饰。软件工程的框架也一样,是将我们常用的技术和核心思路抽象出来,形成特定的框架结构,当我们需要开发的时候,可以引入框架,并且在此基础上进行开发,从而提高开发效率的一门技术。
框架:
装饰后的房子:
三、常见的软件框架
由于软件工程基本遵循MVC的设计思想,所以框架大概从如下几个方面分层实现。
表现层:主要处理试图技术,常见的的框架如JS框架jQuery、AngularJS、freemarker等技术
业务逻辑层:主要对业务逻辑进行控制,常见的有Struts1、Struts2、Spring MVC、以及擅长将各层整合在一起的Spring框架
数据访问层:主要处理与数据库的交互,也称持久层框架,常见的有 Hibernate、iBatis、MyBatis等框架技术。
上面讲到的这么多的框架技术,那么到底怎样在项目中使用各种框架了?答案并不唯一,一般根据各个公司以及各个项目的特点不同,选择不同的组合形成适合自己的才是最好的。比如常见的组合SSH(Struts2 + Spring + Hibernate)、SSI(Struts2 + Spring + iBatis)等组合,一般项目会选择不同的框架技术组合到一起,形成适合自己开发的框架。
介绍几个概念:
1、ORM映射,是Object Relation Mapping(对象关系映射)的简称,我们知道,在java语言中,我们是面向对象编程的,但是,目前主流的数据库都是关系型数据库,我们需要将面向对象的数据转换成关系型的数据,与数据库交互,就需要进行一个对象到关系的转化,所以,ORM就是专门处理这类问题的一个解决方案。例如我们的Hibernate、iBatis等都可以叫做ORM框架,因为它们主要为我们提供对象关系映射的服务。
2、持久化:持久化就是将瞬时的数据进行保存,简单的理解就是将我们项目中交互的数据保存到数据库,达到长久存储的目的。因为我们项目的数据都是临时的在内存中交互和扭转,一旦断电或者终止程序就消失了,所以需要进行持久化。
3、JDBC:网络上这样解释,JDBC(Java Data Base Connectivity,java数据库连接)是一种用于执行SQL语句的Java API,可以为多种关系数据库提供统一访问,它由一组用Java语言编写的类和接口组成。其实简单的理解就是 java 访问数据库的一项技术手段。
4、数据源
数据源,我们需要访问数据库就需要得到数据库连接,才能在此基础上执行相关的操作,数据源就是我们得到连接的一个地方,类似于一个水池一样的,我们需要水的时候就可以到这个地方去取,这个水池在数据库中专门为我们提供数据库连接。
四、iBatis 框架在项目中所处的地位
iBatis在项目中主要的地位是处在DAO层,即数据访问层,主要是起到连接业务层和数据库的桥梁作用,将业务层的数据保存更新到数据库,或者根据需要,将数据从数据库中搜索出来。
iBatis第一章:基础知识概述 & MVC思想的更多相关文章
- wpf(第一章 基础知识)
wpf第一章基础知识:通过vs2015创建wpf程序会在引用里面多出3个核心程序集PresentationCore.PresentationFramework.WindowsBase.并且会在解决方案 ...
- 《openssl编程》:第一章基础知识
第一章 基础知识 1.1 对称算法 对称算法使用一个密钥.给定一个明文和一个密钥,加密产生密文,其长度和明文大致相同.解密时,使用读密钥与加密密钥相同. 对称算法主要有四种加密模式: (1) 电子密码 ...
- Python第一章-基础知识
第一章:基础知识 1.1 安装python. 直接官网下载最新的python然后默认安装就可以了,然后开始菜单里找到pyhton *.*.* Shell.exe运行python的交互shell ...
- 《Python基础教程(第二版)》学习笔记 -> 第一章 基础知识
写笔记的原因:书也看了一遍,视频也看了,但总是感觉效果不好,一段时间忘记了,再看又觉得有心无力,都是PDF的书籍,打开了就没有心情了,上班一天了,回家看这些东西,真的没多大精力了,所以,我觉得还是把p ...
- Python基础教程学习笔记:第一章 基础知识
Python基础教程 第二版 学习笔记 1.python的每一个语句的后面可以添加分号也可以不添加分号:在一行有多条语句的时候,必须使用分号加以区分 2.查看Python版本号,在Dos窗口中输入“p ...
- Python 第一章 基础知识
如果熟其他计算机语言,可能会习惯于每行以分号结束.Python则不同,一行就是一行,不管多少. 如果喜欢的话,可以加上分号,但是不会有任何作用(除非同一行还有更多的代码),而且这也不是同行的做法. & ...
- Laxcus大数据管理系统2.0(2)- 第一章 基础概述 1.1 基于现状的一些思考
第一章 基础概述 1.1 基于现状的一些思考 在过去十几年里,随着互联网产业的普及和高速发展,各种格式的互联网数据也呈现爆炸性增长之势.与此同时,在数据应用的另一个重要领域:商业和科学计算,在各种新兴 ...
- 第一章 Windows内核概述
第一章 Windows内核概述 这一章节描述了Windows内核知识中最重要的几个概念,这些话题在这本书之后会有更详细的描述,那些会与当前的主题密切相关.要确保你理解这个章节的概念,因为这些概念构成了 ...
- javaSE习题 第一章 JAVA语言概述
转眼就开学了,正式在学校学习SE部分,由于暑假放视频过了一遍,略感觉轻松,今天开始,博客将会记录我的课本习题,主要以文字和代码的形式展现,一是把SE基础加强一下,二是课本中有很多知识是视频中没有的,做 ...
随机推荐
- 三、 redis进阶篇
1. redis事务 使用方法:方法为先发送multi命令告诉redis,下面所有的命令属于同一个事务,先不要执行,而是把他们暂时存起来,redis返回OK,然后后面执行需要放在同一个事务里的命令,可 ...
- postgres的使用命令
1.更新源 yum install https://download.postgresql.org/pub/repos/yum/10/redhat/rhel-7-x86_64/pgdg-centos1 ...
- Python爬虫之ip代理池
可能在学习爬虫的时候,遇到很多的反爬的手段,封ip 就是其中之一. 对于封IP的网站.需要很多的代理IP,去买代理IP,对于初学者觉得没有必要,每个卖代理IP的网站有的提供了免费IP,可是又很少,写了 ...
- NPOI插入图片到excel指定单元格
先看效果图 下载NPOI组件(2.0以上支持.xlsx和.xls的excel,2.0以下只支持.xls) NPOI下载官网http://npoi.codeplex.com 下载解压,里面有个dotne ...
- mapbox.gl源码解析——基本架构与数据渲染流程
加载地图 Mapbox GL JS是一个JavaScript库,使用WebGL渲染交互式矢量瓦片地图和栅格瓦片地图.WebGL渲染意味着高性能,MapboxGL能够渲染大量的地图要素,拥有流畅的交互以 ...
- javascript中apply、call和bind的区别及方法详解
文章目录 apply.call apply.call 区别 apply.call实例 数组之间追加 获取数组中的最大值和最小值 验证是否是数组(前提是toString()方法没有被重写过) 类(伪 ...
- 抽象类(abstract class)与接口(interface)的异同
抽象类:如果一个类中包含抽象方法,那么这个类就是抽象类.在Java语言中,可以通过把类或类中的某些方法声明为abstract(abstract只能修饰类或方法,不能修饰属性)来表示一个类是抽象类. 接 ...
- 在vue项目中添加全局提示框
1.写一个提示框组件:msg.vue (注明:这里用两个div的原因是成功和失败的提示不能用同一个div,因为他们可能紧接着出现,所以不能从始至终只有一个提示框在工作) 2.写一个调用此组建的js : ...
- [深度应用]·实战掌握PyTorch图片分类简明教程
[深度应用]·实战掌握PyTorch图片分类简明教程 个人网站--> http://www.yansongsong.cn/ 项目GitHub地址--> https://github.com ...
- Python:解析PDF文本及表格——pdfminer、tabula、pdfplumber 的用法及对比
pdf 是个异常坑爹的东西,有很多处理 pdf 的库,但是没有完美的. 一.pdfminer3k pdfminer3k 是 pdfminer 的 python3 版本,主要用于读取 pdf 中的文本. ...