一、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思想的更多相关文章

  1. wpf(第一章 基础知识)

    wpf第一章基础知识:通过vs2015创建wpf程序会在引用里面多出3个核心程序集PresentationCore.PresentationFramework.WindowsBase.并且会在解决方案 ...

  2. 《openssl编程》:第一章基础知识

    第一章 基础知识 1.1 对称算法 对称算法使用一个密钥.给定一个明文和一个密钥,加密产生密文,其长度和明文大致相同.解密时,使用读密钥与加密密钥相同. 对称算法主要有四种加密模式: (1) 电子密码 ...

  3. Python第一章-基础知识

    第一章:基础知识 1.1 安装python.     直接官网下载最新的python然后默认安装就可以了,然后开始菜单里找到pyhton *.*.* Shell.exe运行python的交互shell ...

  4. 《Python基础教程(第二版)》学习笔记 -> 第一章 基础知识

    写笔记的原因:书也看了一遍,视频也看了,但总是感觉效果不好,一段时间忘记了,再看又觉得有心无力,都是PDF的书籍,打开了就没有心情了,上班一天了,回家看这些东西,真的没多大精力了,所以,我觉得还是把p ...

  5. Python基础教程学习笔记:第一章 基础知识

    Python基础教程 第二版 学习笔记 1.python的每一个语句的后面可以添加分号也可以不添加分号:在一行有多条语句的时候,必须使用分号加以区分 2.查看Python版本号,在Dos窗口中输入“p ...

  6. Python 第一章 基础知识

    如果熟其他计算机语言,可能会习惯于每行以分号结束.Python则不同,一行就是一行,不管多少. 如果喜欢的话,可以加上分号,但是不会有任何作用(除非同一行还有更多的代码),而且这也不是同行的做法. & ...

  7. Laxcus大数据管理系统2.0(2)- 第一章 基础概述 1.1 基于现状的一些思考

    第一章 基础概述 1.1 基于现状的一些思考 在过去十几年里,随着互联网产业的普及和高速发展,各种格式的互联网数据也呈现爆炸性增长之势.与此同时,在数据应用的另一个重要领域:商业和科学计算,在各种新兴 ...

  8. 第一章 Windows内核概述

    第一章 Windows内核概述 这一章节描述了Windows内核知识中最重要的几个概念,这些话题在这本书之后会有更详细的描述,那些会与当前的主题密切相关.要确保你理解这个章节的概念,因为这些概念构成了 ...

  9. javaSE习题 第一章 JAVA语言概述

    转眼就开学了,正式在学校学习SE部分,由于暑假放视频过了一遍,略感觉轻松,今天开始,博客将会记录我的课本习题,主要以文字和代码的形式展现,一是把SE基础加强一下,二是课本中有很多知识是视频中没有的,做 ...

随机推荐

  1. 内置对象Cookie和Session有何不同【常见面试题】

    我们在面试的时候,时常会被问到Cookie和Session的区别,对于初学者来说,有时候会混淆这两个内置对象.下面就我自己的理解,对这2个内置对象进行剖析. 1.Session对象存在Web服务器端, ...

  2. 信利SC123金融财务计算器评测——不错的HP 12C仿品

    最近X宝48包邮购入信利SC123金融计算器,只是为了玩一玩(没错你的好友盗版狂魔又上线了),因为这是目前市面上能买到的最便宜的金融计算器了,也是能买到的最便宜的RPN计算器,顺手出个评测.这个计算器 ...

  3. 阿里云SLB出现502 Bad Gateway 错误排查解决方法

    502 Bad Gateway The proxy server received an invalid response from an upstream server. 原本系统是通过一个SLB转 ...

  4. 第3章 简单的C程序设计——顺序程序设计

    3.1 顺序程序设计举例 例:有人用温度计测量出用华氏法表示的温度(如64F),今要求把它转换为一摄氏法表示的温度(如17.8C) 解题思路:问题的关键在于找到两者的转换公式.根据物理学知识,公式为c ...

  5. 设计一个可拔插的 IOC 容器

    前言 磨了许久,借助最近的一次通宵上线 cicada 终于更新了 v2.0.0 版本. 之所以大的版本号变为 2,确实是向下不兼容了:主要表现为: 修复了几个反馈的 bug. 灵活的路由方式. 可拔插 ...

  6. CanalSharp-mysql数据库binlog的增量订阅&消费组件Canal的.NET客户端

    一.前言 CanalSharp是阿里巴巴开源项目mysql数据库binlog的增量订阅&消费组件 Canal 的.NET客户端,关于什么是 Canal?又能做什么?我会在后文为大家一一介绍.C ...

  7. Android多Module下的Application引用方式

    版权声明:本文为HaiyuKing原创文章,转载请注明出处! 前言 Android开发时,Application一般都放在APP中,Lib模块如果想引用Application则需要在APP中进行传递, ...

  8. springboot~mybatis里localdatetime序列化问题

    问题起因 主要是使用mybatis作为ORM之后,返回的对象为Map,然后对于数据库的datetime,datestamp类型返回为时间戳而不是标准的时间,这个问题解决方案有两种,大叔分析一下: 在m ...

  9. Ubuntu|ython3 :ImportError: cannot import name 'main'

    1.问题 root@stephen-K55VD:/usr/bin# pip3 Traceback (most recent call last): File "/usr/bin/pip3&q ...

  10. 强化学习(二)马尔科夫决策过程(MDP)

    在强化学习(一)模型基础中,我们讲到了强化学习模型的8个基本要素.但是仅凭这些要素还是无法使用强化学习来帮助我们解决问题的, 在讲到模型训练前,模型的简化也很重要,这一篇主要就是讲如何利用马尔科夫决策 ...