MyBatis知多少(1)
SQL (Structured Query Language,结构化查询语言)己经存在很长一段时间了。自从第一次提出“数据可以被规范化为一组相互关联的表”这样的思想以来,已经超过35年了。 从那时起,IT公司就投入了几十亿美元来开发RDBMS (relational database management system, 关系数据库管理系统)。很少有哪一种软件技术敢声称自己像关系数据库和SQL那样经受住了时间的考验。确实,经过了那么长时间,关系技术背后仍然有巨大的推动力,并且它是世界上最大 的软件公司的基础性成果。所有的迹象都表明SQL仍然会继续使用下去,至少30年。

MyBatis的建立正是基于这样的思想:关系数据库和SQL仍然很有价值,在整个产业范围内对 SQL投资仍然是一个非常好的主意。我们可能都曾有过这样的经历,应用程序的源代码(即使经历了很多版本)随着时间的流逝最终还是过时了,但它的数据库甚至是SQL本身却仍然很有价值。 在某些情况下我们也会看到一个应用程序已经被用其他的语句重写了,但背后的SQL和数据库却 基本上保持不变。
正是基于这些原因,Mybatis并不试图去隐藏SQL或者避免使用SQL。相反,正是Mybatis这个 持久层框架广泛使用了SQL,它使得SQL更容易使用、更容易集成到现代的面向对象软件中。最 近,有传言说数据库和SQL与我们的面向对象的设计理念不符,但事实并不一定是这样。Mybatis能帮助我们避免这种问题。后面,我们将学习到Mybatis的历史和基本原理,并讨论影响其创建的动力。
在现实世界中,混合型解决方案随处可见。将两个看上去似乎相悖的思想在“中间处”巧妙 结合,被证明是一种有效的方法,它往往能恰到好处地解决问题,在某些情况下甚至会导致新兴行业的诞生。汽车工业就是一个最典型的例子,运输工具大部分的设计革新都来自于对不同 思想的混合。将小轿车与大篷货车结合最终就形成了我们现在的家用房车。把卡车与越野车相结合,于是就有了现代城市人身 份的象征——运动型多功能车。将高速汽车与旅行汽车相 结合,于是就有了驾驶起来很舒服的家用小轿车。在汽油引擎旁边安装一个电力引擎,于是目前很多环境污挚问题就都可以迎刃而解了。
混合型解决方案在IT领域同样被证明是非常有效的。MyBatis就是这样一个混合型的持久层解决方案。在过去的时间中,大量的方法来使应用程序能够执行SQL,以便操纵其背后的数据库。MyBatis汲取了这些方法中的优秀思想,成为一个独特的持久层解决方案。
MyBatis知多少(1)的更多相关文章
- MyBatis知多少(26)MyBatis和Hibernate区别
iBatis和Hibernate之间有着较大的差异,但两者解决方案很好,因为他们有特定的领域.我个人建议使用MyBatis的,如果: 你想创建自己的SQL,并愿意维持他们. 你的环境是由关系数据模型驱 ...
- MyBatis知多少(26)调试
这是很容易,同时与iBATIS的工作程序进行调试. iBATIS有内置的日志支持,并适用于下列日志库,并在这个顺序搜索他们. Jakarta Commons日志记录(JCL). Log4J JDK 日 ...
- MyBatis知多少(25)动态SQL
使用动态查询是MyBatis一个非常强大的功能.有时你已经改变WHERE子句条件的基础上你的参数对象的状态.在这种情况下的MyBatis提供了一组可以映射语句中使用,以提高SQL语句的重用性和灵活性的 ...
- MyBatis知多少(24)存储过程
使用MyBatis配置来调用存储过程.为了理解这一章,首先需要了解我们是如何在MySQL中创建一个存储过程. 在继续对本节学习之前,可以自行学习MySQL存储过程. 我们已经在MySQL下有EMPLO ...
- MyBatis知多少(23)MyBatis结果映射
resultMap的元素是在MyBatis的最重要和最强大的元素.您可以通过使用MyBatis的结果映射减少高达90%的JDBC编码,在某些情况下,可以让你做JDBC不支持的事情. ResultMap ...
- MyBatis知多少(22)MyBatis删除操作
本节从表中使用MyBatis删除记录. 我们已经在MySQL下有EMPLOYEE表: CREATE TABLE EMPLOYEE ( id INT NOT NULL auto_increment, f ...
- MyBatis知多少(21)更新操作
上一章展示了如何使用MyBatis对表进行读取操作.本章将告诉你如何在一个表中使用MyBatis更新记录. 我们已经在MySQL下有EMPLOYEE表: CREATE TABLE EMPLOYEE ( ...
- MyBatis知多少(20)MyBatis读取操作
上篇展示了如何使用MyBatis执行创建操作表.本章将告诉你如何使用MyBatis来读取表. 我们已经在MySQL下有EMPLOYEE表: CREATE TABLE EMPLOYEE ( id INT ...
- MyBatis知多少(19)MyBatis操作
若要使用iBATIS执行的任何CRUD(创建,写入,更新和删除)操作,需要创建一个的POJO(普通Java对象)类对应的表.本课程介绍的对象,将“模式”的数据库表中的行. POJO类必须实现所有执行所 ...
- MyBatis知多少(18)MyBatis系统
小型.简单系统 小型应用程序通常只涉及单个数据库,只有一些相当简单的用户界面和领域模型.它的业务逻辑非常简单,甚至对一些简单的CRUD (Create, Read, Update, Delete:增删 ...
随机推荐
- CAS 实现单点登录 .NET MVC
单点登录 Single Sign On,简称为 SSO,是目前比较流行的企业业务整合的解决方案之一.SSO的定义是在多个应用系统中,用户只需要登录一次就可以访问所有相互信任的应用系统. 单点登录原理 ...
- JavaScript简介及基础知识(1)
1.JavaScript是什么—它是个脚本语言,需要宿主文件,它的宿主文件是html文件. Javascript是一种脚本语言,比HTML要复杂.不过即便你先前不懂编程,也不用担心,因为Javascr ...
- iOS开发- 三步快速集成社交化分享工具ShareSDK
1.前言 作为现在App里必不可少的用户分享需要,社交化分享显然是我们开发app里较为常用的. 最近因为公司App有社交化分享的需要,就特此研究了会,拿出来与大家分享. 想要集成社交会分享,我们可以使 ...
- javaweb学习总结(六)——Servlet开发(二)
一.ServletConfig讲解 1.1.配置Servlet初始化参数 在Servlet的配置文件web.xml中,可以使用一个或多个<init-param>标签为servlet配置一些 ...
- docker使用GPU
1.物理机安装显卡驱动 2.安装nvidia-docker wget -P /tmp https://github.com/NVIDIA/nvidia-docker/releases/download ...
- cygintl-8.dll 是cygwin的哪个包?|Windows查看man手册的方法-cygwin
答案是: 是 Release\gettext\libintl8\libintl8-0.18.1.1-2.tar.bz2 应该是gettext 项目的一部分吧. 下载地址 可以直接从 cygwin的镜像 ...
- solr多core的处理
有2中配置方式,一是从Solr Admin进行multi core的配置. 在Solr Admin控制台里面选择:Core Admin 选择Add Core 然后把你准备好的路径写到里面去. name ...
- 虚方法的调用是怎么实现的(单继承VS多继承)
我们知道通过一个指向之类的父类指针可以调用子类的虚方法,因为子类的方法会覆盖父类同样的方法,通过这个指针可以找到对象实例的地址,通过实例的地址可以找到指向对应方法表的指针,而通过这个方法的名字就可以确 ...
- Naked Search in service
public List<TplRelease> searchTplReleaseById(TplRelease tr)throws Exception{ DBOperator dbo = ...
- iOS 多渠道打包 编译脚本
http://webfrogs.me/2012/09/19/buildipa/http://blog.csdn.net/baxiaxx/article/details/8267295http://ic ...