初识 MyBatis
框架技术
使用框架构建项目,当确定使用哪个技术框架后,就已经有了一个 “半成品”,然后在这个半成品上填上内容,完成任务需求。
框架技术的优点:
(1)不用再考虑公共问题,框架已经帮我们做好了。
(2)可以专心于业务逻辑,保证核心业务逻辑的开发质量。
(3)结构统一,便于学习和维护。
(4)框架中集成了前人的经验,可以帮助新手写出稳定、性能优良而且结构优美的高质量程序。
学习框架技术建议:
1、学习框架技术,不仅仅在于会用,还要明白其所以然,这就需要多去查看相关的官方文档(最好为英文版),结合源码才能更好地去理解。
2、多思考,结合之前学习的 Java 基础,注重程序代码性能方面的调优。
3、多动手,多敲代码,才能熟能生巧不能只看不练。
4、多看技术博客。
框架的概念
框架(Framework)是一个提供了可重用的公共结构的半成品。它为我们构建新的应用程序提供了极大的便利。一方面提供了可以拿来就用的工具,更重要的是,提供了可重用的设计。
框架这个词最早出现在建筑领域,指的是在建造房屋前期构建的建筑骨架,对应用程序来说,“框架” 就是应用程序的骨架,开发者可以在这个骨架上加上自己的东西,搭建符合自己需求的应用系统。框架中凝结着前人的经验和智慧,使用框架,我们就站在了巨人的肩上。
Rickard Oberg(WebWork 的作者和 JBoss 的创始人之一) 说过:框架的强大之处不是源自它能让你做什么, 而是它不能让你做什么。 Rickard 强调了框架另一个层面的含义:框架使混乱的东西变结构化。莎士比亚说:一千个人眼中有一千个哈姆雷特。同样,如果没有框架的话,一千个人将写出一千种 Servlet+JavaBean+JSP 的代码,而框架保证了程序结构风格的统一。从企业的角度 说,降低了培训成本和软件的维护成本。框架在结构统一和创造力之间维持着一个合适的平衡。
主流框架的介绍
1、Struts 2 框架
Struts 2 以 WebWork 优秀的设计思想为核心,吸收了 Struts 框架的部分优点,提供了一个更加整洁的基于 MVC 设计模式实现的 Web 应用程序框架。它引入了几个新的框架特性:从逻辑中分离出横切关注点的拦截器,减少或者消除配置文件,贯穿整个框架的强大表达式语言,支持可变更和可重用的基于 MVC 模式的标签 API 等。Struts 2 充分利用了从其他 MVC 框架学到的经验和教训,使整个框架更加清晰、更加灵活。
2、Hibernate 框架
Hibernate 是一个优秀的持久化框架,负责简化将对象数据保存到数据库中,或从数据库中读取数据并封装到对象的工作。 Hibernate 通过简单配置和编码即可替代 JDBC 烦琐的程序代码。 Hibernate 已经成为当前主流的数据库持久化框架,被广泛应用。
3、Spring 框架
Spring 也是一个开源框架。它的目标是使现有的 JavaEE 技术更容易使用和促进良好的编程习惯。 它是一个轻量级的框架,渗透了 JavaEE 技术的方方面面。它主要作为依赖注入容器和 AOP 实现存在,还提供了声明式事务、对 DAO 层的支持等简化开发的功能。 Spring 还可以很方便地与 SpringMVC、Struts 2 、 MyBatis、 Hibernate 等框架集成,其中大名鼎鼎的 SSM 集成框架指的就是基于 SpringMVC + Spring + MyBatis 的技术框架,使用这个集成框架将使我们的应用程序更加健壮、稳固、轻巧和伏雅,这也是当前最流行的 Java 技术框架。
4、SpringMVC 框架
SpringMVC 是 Spring 框架提供的构建 Web 应用程序的全功能 MVC 模块,属于 SpringFramework 的后续产品,已经融合在 Spring Web Flow 里面,是结构最清晰的 MVC Model2 的实现。并且拥有高度的可配置性,支持多种视图技术。还可以进行定制化开发,相当灵活。此外,,Spring 整合 SpringMVC 可以说是无缝集成,是一个高性能的架构模式。现在越来越广泛地应用于互联网应用的开发中。
5、MyBatis 框架
MyBatis 是一个优秀的数据持久层框架,在实体类和 SQL 语句之间建立映射关系,是一种半自动化的 ORM 实现。其封装性要低于 Hibernate,性能优秀,并且小巧、简单易学,现在应用也越来越广泛。
数据持久化概念
数据持久化是将内存中的数据模型转换为存储模型,以及将存储模型转换为内存中的数据模型的统称。例如,对数据表的增删改查、文件的存储、数据的读取等都是数据持久化操作。数据模型可以是任何数据结构或对象模型,存储模型可以是关系模型、XML、二进制流等。
MyBatis 框架及 ORM
Mybatis 框架简介
MyBatis 是 Java 持久化框架,即属于 DAO 层框架,使用 Mybatis 可以方便地完成持久化(增删改查)操作。
MyBatis 是一个开源的数据持久层框架。它内部封装了通过 JDBC 访问数据库的操作,支持普通的 SQL 查询、存储过程和高级映射,几乎消除了所有的 JDBC 代码和参数的手工设置以及结果集的检索。 MyBatis 作为持久层框架,其主要思想是将程序中的大量 SQL 语句剥离出来,配置在配置文件中,实现 SQL 的灵活配置。这样做的好处是将 SQL 与程序代码分离,可以在不修改程序代码的情况下,直接在配置文件中修改SQL。
MyBatis 的前身是 iBatis,本是 Apache 的一个开源项目,2010 年这个项目由 Apache Software Foundation 迁移到了 Google Code,并改名为 MyBatis。2013 年迁移到 Github。
MyBatis 官网:http://mybatis.org
Github:https://github.com/mybatis
什么是 ORM
ORM (Object/Relational Mapping) 即对象/关系映射,是一种数据持久化技术。它在对象模型和关系型数据库之间建立起对应关系,并且提供了一种机制,通过 JavaBean 对象去操作数据库表中的数据。 如下图所示。
在实际开发中,程序员使用面向对象的技术操作数据,而当存储数据时,使用的却是关系型数据库,这样造成了很多不便。ORM 在对象模型和关系数据库的表之间建立了一座桥梁。有了 ORM, 程序员就不需要再使用 SQL 语句操作数据库中的表,使用 API 直接操作 JavaBean 对象就可以实现数据的存储、查询、更改和删除等操作。 MyBatis 通过简单的 XML 或者注解进行配置和原始映射,将实体类和 SQL 语句之间建立映射关系,是一种半自动化的 ORM 实现。
Mybatis 是 ORM 解决方案
基于 ORM,MyBatis 在对象模型和关系数据库的表之间建立了一座桥梁,通过 MyBatis 建立 SQL 关系映射,以便捷地实现数据存储、查询、更改和删除等操作。
MyBatis 框架的优缺点及其适用场合
MyBatis 框架的优点
(1)与 JDBC 相比,减少了50%以上的代码量。
(2)MyBatis 是最简单的持久化框架,小巧并简单易学。
(3)MyBatis 相当灵活,不会对应用程序或者数据库的现有设计强加任何影响,SQL 写在 XML 里,从程序代码中彻底分离,降低耦合度,便于统一管理和优化,并可重用。
(4)提供 XML 标签,支持编写动态 SQL 语句。
(5)提供映射标签,支持对象与数据库的 ORM 字段关系映射。
MyBatis 框架的缺点
(1)SQL 语句编写工作量大,对开发人员编写 SQL 语句的功底有一定要求。
(2)SQL 语句依赖于数据库,导致数据库移植性差,不能随意更换数据库。
MyBatis 框架的适用场合
MyBatis 专注于 SQL 本身,是一个足够灵活的 DAO 层解决方案。对性能的要求很高,或者需求变化较多的项目,如互联网项目。
初识 MyBatis的更多相关文章
- 初识mybatis(二)
上篇博客我们介绍通过Java代码来创建mybatis的配置文件,港真,这种方式看起来有意思实际在开发中用的并不多,mybatis的配置还是以xml配置为主,本文我们就来看看如何通过xml文件来配置my ...
- mybatis入门--初识mybatis
初识mybatis 今天,一起来说说mybits这个框架吧.这是一个持久层的框架.之前叫做ibatis.所以,在它的代码中出现ibatis这个词的时候,不要感到惊讶.不是写错了,它确实就是这个样子的. ...
- MyBatis For .NET学习- 初识MyBatis
MyBatis的框架. Introduction MyBatis本是apache的一个开源项目iBatis,2010年这个项目由 apache software foundation迁移到了googl ...
- 初识Mybatis之工程搭建
简介:MyBatis 是一款优秀的持久层框架,它支持定制化 SQL.存储过程以及高级映射.MyBatis 避免了几乎所有的 JDBC 代码和手动设置参数以及获取结果集.MyBatis 可以使用简单的 ...
- MyBatis学习01(初识MyBatis和CRUD操作实现)
1.初识MyBatis 环境说明: jdk 8 + MySQL 5.7.19 maven-3.6.1 IDEA 学习前需要掌握: JDBC MySQL Java 基础 Maven Junit 什么是M ...
- 初识Mybatis框架,实现增删改查等操作(动态拼接和动态修改)
此第一次接触Mybatis框架确实是有点不适应,特别是刚从Hibernate框架转转型过来,那么为什么要使用Mybatis框架,Mybatis框架和Hibernate框架又有什么异同呢? 这个问题在我 ...
- 初识MyBatis
ORM:对象关系映射,它只是一种规则. 像MyBatis,Hibernate对jdbc进行了封装. 第一章 回顾JDBC开发 1.优点:简单易学,上手快,非常灵活构建SQL(自己写的),效率高.2.缺 ...
- 初识Mybatis框架,实现增删改查等操作
此第一次接触Mybatis框架确实是有点不适应,特别是刚从Hibernate框架转转型过来,那么为什么要使用Mybatis框架,Mybatis框架和Hibernate框架又有什么异同呢? 这个问题在我 ...
- Mybatis基础学习(一)—初识MyBatis
一.MyBatis是什么? MyBatis 本是apache的一个开源项目iBatis, 2010年这个项目由apache software foundation 迁移到了google co ...
- (一)初识mybatis
Mybatis 是现在很多公司都选择使用的一个ORM(Object Relational Mapping)框架,所以是值得了解和学习一番的. MyBatis 是支持定制化 SQL.存储过程以及高级映射 ...
随机推荐
- android短信拦截
广播分2种,无序广播和有序广播.可以理解为散列和队列广播. 首先无序广播,不能中断,分发机制有点类似散列发送.这种广播的的发送为:context.sendBroadcast这种广播是不能中断的,请看A ...
- 蓝书3.3 SPFA算法的优化
T1 最小圈 bzoj 1486 题目大意: 一个环的权值平均值为定义为一个这个环上所有边的权值和除以边数 求最小的环的权值平均值 思路: 二分一个值 把所有边减去这个值 判断是否有负环 #inclu ...
- 靶形数独 2009年NOIP全国联赛提高组(搜索)
靶形数独 2009年NOIP全国联赛提高组 时间限制: 4 s 空间限制: 128000 KB 题目等级 : 钻石 Diamond 题目描述 Description 小城和小华都是热爱数 ...
- P4727 [HNOI2009]图的同构记数
传送门 如果我们把选出子图看成选出边,进而看成对边黑白染色,那么就是上一题的弱化版了,直接复制过来然后令\(m=2\)即可 不过直接交上去会T,于是加了几发大力优化 不知为何华丽的被小号抢了rank2 ...
- 【转】20道Spring Boot面试题
面试了少量人,简历上都说自己熟习 Spring Boot, 或者者说正在学习 Spring Boot,一问他们时,都只停留在简单的使用阶段,很多东西都不清楚,也让我对面试者大失所望. 下面,我给大家总 ...
- c#自定义ORM框架---(泛型&反射&实体类扩展属性<附带通用增、删、查、改>)
该教材主要是运用到泛型.反射和实体类扩展属性 步骤一.建立扩展属性类 实体类扩展属性要继承Attribute基类完成 [AttributeUsage(AttributeTargets.Property ...
- golang——字符串与编码
1.字符编码 (1)ASCII码 一个字节表示的英文.数字.标点符号等字符. 国际标准ASCII码为0-127即128个字符,二进制最高位为0,其余为扩展ASCII码. (2)GB2312 两字节,主 ...
- redis实际项目作用
我整理一下redis主要在项目作用,只是我接触到的 1 手机验证码存入redis中,可以限制什么时候有效 2 防止接口请求频率过高,例如一分钟只能请求5次 代码如下: <?php /** * ...
- gitlab&Jenkins 详细介绍及其应用
第1章 gitlab 1.1 系统环境 [root@jenkins ~]# cat /etc/redhat-release CentOS Linux release 7.2.1511 (Core) ...
- Linux上安装禅道
linux一键安装包内置了apache, php, mysql这些应用程序,只需要下载解压缩即可运行禅道. 从7.3版本开始,linux一键安装包分为32位和64位两个包,请大家根据操作系统的情况下载 ...