一、Java操作数据库的阶段。

Java对数据库进行操作经历了三个阶段。

1.1操作JDBC阶段

这个阶段就是利用JDBC类来操作数据库。这个阶段出现了两个问题:

代码过度重复:在每一次数据库操作的是后都要编写相似的代码。实际上每一次这些代码有的是只是SQL语句改变但是还是得写一遍。让我想起第一次用.NET做机房收费系统的时候就写查询的时候除了SQL语句不一样以外其他都一样。

不能突出业务:整个代码都是数据库处理的代码,体现不出业务操作逻辑。

1.2封装JDBC阶段

这个阶段其实就是像.NET一样写SQLHelper把一些操作封装成方法,用到了调用就行了。封装一些常用的操作比如:加载数据库驱动,执行更新SQL执行,查询SQL,关闭对象,关闭数据库连接等。

1.3ORM阶段

ORM(ObjectRelational Mapping)是对象关系映射。这个是对JDBC进行了封装之后,能够方便地实现数据库的操作。ORM它是一种为了解决面向对象与关系数据库存在的互补匹配的现象的技术。ORM通过使用描述对象和数据库之间映射的元数据,将Java程序中的对象自动持久化到关系数据库中。ORM的实现产品有Apache
OJB,Cayenne,Jaxor,iBatis,jRelationalFramework和现在学的Hibernate等。

二、持久层框架

iBatis:

使用ibatis提供的ORM机制,对业务逻辑实现人员而言,面对的是纯粹的Java对象, 这一层与通过Hibernate 实现ORM而言基本一致,而对于具体的数据操作,Hibernate 会自动生成SQL 语句,而ibatis 则要求开发者编写具体的SQL 语句。相对Hibernate等“全自动”ORM机制而言,ibatis 以SQL开发的工作量和数据库移植性上的让步,为系统
设计提供了更大的自由空间。作为“全自动”ORM实现的一种有益补充,ibatis 的出现显 得别具意义。

Hibernate:这是目前最流行的持久层框架,它是对JDBC的轻量级的对象封装,可以用在任何JDBC可以使用的场合。

三、总结

持久层框架能为我们提供更方便快捷的开发。一个成熟的持久层框架给我们带来了一下好处:

·减少了乏味的代码

持久层框架封装了数据库持久层大多数技术细节,让我们可以从JDBC的编码中解脱出来,将我们的精力更多的放到有价值的工作中去。

·更加面向对象设计

ORM为系统设计提供了更加自然的实现方式。我们可以通过ORM将系统中的对象自动映射到各个数据表中,从而编码中只需关心对象的相关属性无需在纠缠于JDBCResultSet中的字段数据

·更好的性能

很多持久层框架提供了优秀的性能优化机制,这些优化的综合使用大大提升了系统性能。

·更好的移植性

基于Java的跨平台特性,我们的系统可以在不同操作系统之间切换。但由于数据库之间的差异,系统在数据库平台之间的迁移却遇到了阻力。上面提及的这些成熟持久层框架,由于设计上的良好隔离,从而提供了对不同数据库的良好支持,我们只需简单地修改其配置参数,即可实现底层数据库的切换。

菜鸟学习Hibernate——持久层框架的更多相关文章

  1. MyBatis持久层框架学习之01 MyBatis的起源和发展

    一.MyBatis的简介  MyBatis 是支持定制化 SQL.存储过程以及高级映射的优秀的持久层框架.    MyBatis 避免了几乎所有的 JDBC 代码和手动设置参数以及获取结果集. MyB ...

  2. Mybatis学习之自定义持久层框架(七) 自定义持久层框架优化

    前言 接上文,这里只是出于强迫症,凭借着半年前的笔记来把之前没写完的文章写完,这里是最后一篇了. 前面自定义的持久层框架存在的问题 Dao层若使用实现类,会存在代码重复,整个操作的过程模版重复(加载配 ...

  3. Hibernate数据库持久层框架

    Hibernate是一种Java语言下的对象关系映射解决方案. 它是使用GNU宽通用公共许可证发行的自由.开源的软件.它为面向对象的领域模型到传统的关系型数据库的映射,提供了一个使用方便的框架.Hib ...

  4. Java数据持久层框架 MyBatis之API学习一(简介)

    对于MyBatis的学习而言,最好去MyBatis的官方文档:http://www.mybatis.org/mybatis-3/zh/index.html 对于语言的学习而言,马上上手去编程,多多练习 ...

  5. Hibernate: 数据持久层框架

    Hibernate 是一种Java语言下的对象关系映射解决方案. 它是使用GNU宽通用公共许可证发行的自由.开源的软件.它为面向对象的领域模型到传统的关系型数据库的映射,提供了一个使用方便的框架.Hi ...

  6. Mybatis学习之自定义持久层框架(六) 自定义持久层框架:完善CRUD方法并进行测试

    前言 没想到会等到半年以后才来写这篇文章,我已经不记得当初自己想要在这篇文章中写什么了,还好有一些零散的笔记留着,就对照着上一篇文章及零散的笔记,把内容给补充完吧. 完善CRUD方法 完善Defaul ...

  7. Mybatis学习之自定义持久层框架(三) 自定义持久层框架:读取并解析配置文件

    前言 前两篇文章分别讲解了JDBC和Mybatis的基本知识,以及自定义持久层框架的设计思路,从这篇文章开始,我们正式来实现一个持久层框架. 新建一个项目 首先我们新建一个maven项目,将其命名为I ...

  8. Mybatis学习之自定义持久层框架(二) 自定义持久层框架设计思路

    前言 上一篇文章讲到了JDBC的基本用法及其问题所在,并提出了使用Mybatis的好处,那么今天这篇文章就来说一下该如何设计一个类似Mybatis这样的持久层框架(暂时只讲思路,具体的代码编写工作从下 ...

  9. Mybatis学习之自定义持久层框架(一) 为什么要用框架而不直接用JDBC?

    前言 说起Mybatis,相信大家都不会感到陌生,它是一款优秀的持久层框架,应用于java后端开发中,为客户端程序提供访问数据库的接口. 我们都知道,JDBC是Java语言中用来规范客户端程序如何来访 ...

随机推荐

  1. Jmeter如何设置关联

    1.打开飞机网站的第三个设置:2.录制一个登陆和退出脚本,导出为jmx文件:3.Jmeter导入第二步中的文件:4.添加察看结果树,运行一次,会发现一个错误(没有输入正确的usersession)5. ...

  2. Android开发-API指南-<intent-filter>

    <intent-filter> 英文原文:http://developer.android.com/guide/topics/manifest/intent-filter-element. ...

  3. 华为OJ平台——字符串通配符

    题目描述: 在计算机中,通配符一种特殊语法,广泛应用于文件搜索.数据库.正则表达式等领域.现要求各位实现字符串通配符的算法.要求:实现如下2个通配符: *:匹配0个或以上的字符(字符由英文字母和数字0 ...

  4. oracle中,行转列函数wm_concat()结果有长度限制,重写该函数解决

    --Type CREATE OR REPLACE TYPE zh_concat_im AUTHID CURRENT_USER AS OBJECT ( CURR_STR clob, STATIC FUN ...

  5. Apache Segmentaion Fault故障处理案例分析

    本文出自 "李晨光原创技术博客" 博客,转载请与作者联系!

  6. wcscpy wcscpy_s strcpy strcpy_s的区别

    原型声明:extern char *strcpy(char *dest,const char *src); 头文件:string.h 功能:把从src地址开始且含有NULL结束符的字符串赋值到以des ...

  7. 正斜杠和反斜杠-windows、web、c语言大讨论

    首先,在c语言中,正斜杠/ slash 表示除法反斜杠\ backslash ,\用于转义字符,\n.\0. 其次,UNIX 操作系统设计了这种路径分隔法,它使用正斜杠:/.由于网络是首先应用在 UN ...

  8. C#导出

    #region  DataReader 的数据导出到Excle 中        //public string Exports(string str_sql)        //{        / ...

  9. yii 事物

    $transaction = Yii::app()->db->beginTransaction(); //创建事务 $transaction->commit(); //提交事务 $t ...

  10. 创建parameter id

    Custom Parameter-id Creation By Abhijit Daptary, Capgemini India Step1: Creation of parameter ID.  P ...