一、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. Git使用手册:HTTPS和SSH方式的区别和使用

    在管理Git项目上,很多时候都是直接使用https url克隆到本地,当然也有有些人使用SSH url克隆到本地.这两种方式的主要区别在于:使用https url克隆对初学者来说会比较方便,复制htt ...

  2. PERT(计划评审技术,Program Evaluation an Review Technique)

    如果你对项目管理.系统架构有兴趣,请加微信订阅号"softjg",加入这个PM.架构师的大家庭 PERT(计划评审技术,Program Evaluation an Review T ...

  3. myecplise tomcat jdk

    myeclipse是javaweb初学者或者工程师非常常用的软件.那么在MyEclipse中如何使用自己安装的JDK和tomcat呢.下面是JDK1.7+tomcat7.0+myeclipse10的j ...

  4. 【MySQL】Sysbench性能测试

    两台MySQL配置不一样,要测试下性能差别 [m1] long_query_time = 0.1 log_slave_updates innodb_flush_log_at_trx_commit [m ...

  5. Windows phone 8 学习笔记(6) 多任务(转)

    Windows phone 8 是一个单任务操作系统,任何时候都只有一个应用处于活跃状态,这里的多任务是指对后台任务的支持.本节我们先讲讲应用程序的运行状态,然后看看支持的后台任务,包括:后台代理.后 ...

  6. Linux之通配符与转义字符

    通配符: *:代表任意字符,可以为空字符 ?:代表一个字符,不可以为空字符 转义字符: \

  7. static local variable

    Putting the keyword static in front of a local variable declaration creates a special type of variab ...

  8. POJ C程序设计进阶 编程题#3:运算符判定

    编程题#3:运算符判定 来源: POJ (Coursera声明:在POJ上完成的习题将不会计入Coursera的最后成绩.) 注意: 总时间限制: 1000ms 内存限制: 65536kB 描述 两个 ...

  9. POJ C程序设计进阶 编程题#2: 配对碱基链

    编程题#2: 配对碱基链 来源: POJ (Coursera声明:在POJ上完成的习题将不会计入Coursera的最后成绩.) 注意: 总时间限制: 1000ms 内存限制: 65536kB 描述 脱 ...

  10. zend studio导入thinkphp的乱码问题

    刚刚导入thinkphp有乱码还有错误怎么办? windows -> preference -> Work space -> text file encodeing设置为 UTF-8 ...