`
com_xpp
  • 浏览: 372799 次
社区版块
存档分类
最新评论

Follow Me:深入浅出学习Hibernate一:Hibernate概述

 
阅读更多

花絮

现在编程过程中框架越来越多,框架的好处我们每个人都享受这它的魅力,有了框架我们最受益的是我们在编程过程中的是重用,采用框架统一定义的接口,从而使构件间的通信简单。

我们是否思考过,MVC中数据持久层用JDBC写是否合理,是否有最简单的写法,时候有更加好的架构来实现这一层的开发,但是是肯定的Hibernate框架就是运用持久化技术实现对JDBC的封装。

思考


请问大家对Hibernate了解多少?大家想不想了解Hibernate?那我们为什么要了解Hibernate?Hibernate在编程时给我们带来了什么方便之处,不便之处?等等一系列问题,很有意思,值得我们去研究。不了解也没有关系,下面请跟随我一起进入Hibernate的学习。

概述

Hibernate百科定义:Hibernate是一个开放源代码的对象关系映射框架,它对JDBC进行了非常轻量级的对象封装,使得Java程序员可以随心所欲的使用对象编程思维来操纵数据库。 Hibernate可以应用在任何使用JDBC的场合,既可以在Java的客户端程序使用,也可以在Servlet/JSP的Web应用中使用,最具革命意义的是,Hibernate可以在应用EJB的J2EE架构中取代CMP,完成数据持久化的重任。

加深理解

通过这个概述想必大家对Hibernate有了一定的了解,那么就深入的谈一谈谈几个问题,加深对Hibernate定义的理解。

1.轻量级框架和重量级框架

轻量级框架:减少开发复杂度,相应的它的处理能力便有所减弱。重要是:应用不依赖于容器,这样可以提高开发调试效率;网上提供了大量的开源项目代码,有利于快速开发。适用于中小型企业应用开发。

重量级框架:需要依赖于一个非常庞大的容器,容器体积庞大,占用资源过多,在开发的时候效率比较低。适用于大型企业。

2.提到Hibernate令我想到国内应用的ssh三种框架(Spring + Struts +Hibernate)

Struts的目的是为了帮助我们减少在运用MVC设计模型来开发Web应用的时间。

Spring是一个轻量级的控制反转(IoC)和面向切面(AOP)的容器框架。

Hibernate是一个开放源代码的对象关系映射框架,它对JDBC进行了非常轻量级的对象封装,使得Java程序员可以随心所欲的使用对象编程思维来操纵数据库

相比之下可以联想到外国有什么框架值得我们学习?从很多资料可以查到在外国出名的框架是PHP框架。

PHP开发框架有助于促进快速软件开发(RAD),这节约了你的时间,有助于创建更为稳定的程序,并减少开发者的重复编写代码的劳动。这些框架还通过确保正确的数据库操作以及只在表现层编程的方式帮助初学者创建稳定的程序。PHP开发框架使得你可以花更多的时间去创造真正的Web程序,而不是编写重复性的代码。(PHP框架介绍

3.为什么要研究外国的框架?

这个问题我个人认为,中国的编程都是从外国学习而来,外国是编程的发展的潮头,我们应该试图去捕捉潮头,这样我们的编程思维不会落伍,才能保持我们每天都有新鲜的血液充斥我们的大脑。其实我对于PHP框架也不是很了解,但是我对一些基于PHP框架的东西只能看了一个皮毛,具体每种PHP框架中是如何实现,这个还没有研究。但是我们也应该捕捉国际大潮的发展趋势,发展我们的技术,促进我们的变成水平的提升。

4.解析Hibernate在MVC的位置


大家看到这个图,一眼就知道了Hibernate是进行数据持久层的封装,也就说用Hibernate操作实体类和实体类的映射文件代替了原来的JDBC语句,从而进行了对数据持久化技术的封装。这样做使我们的编程更加高效。

5.hibernate的优缺点

优点:

1.对象/关系数据库映射(ORM):使用完全面向对象的思想操纵关系数据
2.提高生产力
3.可移植性

4.没有侵入行,支持持久化

缺点:

1.使用数据库特性的语句,将很难调优

2.对大批量数据更新存在问题

3.系统中存在大量的统计查询功能

所以:一般我们结合Hibernate和JDBC语句各自的优缺点进行组合使用才能凸显我们的编程更加完美。

Hibernate总结:使用Hibernate可以使我们采用对象化的思维操作数据库模型,建立对象化思维思考数据关系是这个框架的特色,它让我们体会面向对象编程好处,更加符合我们的思维方式。




分享到:
评论

相关推荐

    followme:RoboCup @ home SPL中的Followme代码

    followme(靛蓝)-0.0.1-0 通过在Thu, 02 Jul 2015 05:33:48 -0000运行/usr/bin/bloom-release --rosdistro indigo --track indigo followme ,将followme存储库中的软件包发布到了indigo发行版中。 followme...

    圆梦小车FollowMe全集

    在实际操作中,"圆梦小车FollowMe全集"可能会包含一系列实验和挑战,逐步提升学习者的技能。这些实验可能涉及逐步添加新功能,如自动导航、避障系统,甚至可能扩展到更复杂的自主行为,如路径规划和决策制定。 通过...

    ardrone_followme:ROS-stack 来制作一个跟随一个人的 AR.Drone。 基于AutonomyLabardrone_autonomy

    ardrone_followme ROS-stack 来制作一个跟随一个人的 AR.Drone。 使用 AutonomyLab/ardrone_autonomy、ardrone_driver 和 ardrone_joystick。

    寻迹小车 FollowMe 项目

    "寻迹小车 FollowMe 项目"是一个基于C语言编程的智能小车开发项目,旨在实现小车能够自动追踪预设路径或者跟随特定目标移动。在这个项目中,开发者需要掌握C语言的基础语法以及一些高级特性,同时理解嵌入式系统的...

    FollowMe:android 项目 - 该应用程序提供跟踪和紧急警报服务

    "FollowMe"是一款基于Android平台的应用程序,旨在为用户提供实时跟踪和紧急报警功能,以增强个人安全保障。本文将深入探讨这款应用背后的开发技术,主要围绕Java编程语言进行讲解。 一、应用概述 "FollowMe"是一款...

    Follow-Me:深度学习架构可帮助无人机瞄准并关注人们

    $ git clone https://github.com/BrunoEduardoCSantos/Follow-Me.git 安装依赖项 您需要安装Python 3和Jupyter Notebooks才能执行此项目。 如果还没有安装的话,最好的方法是将Anaconda与一起使用。 如果出于某种...

    FollowMe轻博客

    "FollowMe轻博客"是一个基于面向对象编程和MVC(Model-View-Controller)设计模式构建的博客系统。这个系统的主要特点是结构清晰、易于维护和扩展,特别适合那些希望快速搭建个人博客或轻型社交平台的用户。"仿点点...

    独立微博Follow5:30天内将暂停所有服务运营.docx

    Follow5,一个曾经备受关注的独立微博平台,于2021年11月4日宣布了一项重大决定,即在接下来的30天内暂停所有服务运营。这个消息由其运营总经理毕杨通过个人新浪微博账号发布,引发了业界的关注。毕杨指出,除了服务...

    followme:使用 Rails 4 + RSpec + Cucumber 进行行为驱动开发

    $ git clone git@github.com:krahman/followme.git 安装 gem $ bundle install --path vendor/bundle 迁移数据库 $ bundle exec rake db:migrate 运行用户对象单元测试 RSpec $ bundle exec rspec spec/models/...

    SkyEye仿真Follow me

    ### SkyEye仿真Follow Me 关键知识点 #### 一、SkyEye简介 - **定义与目标**:SkyEye是一款开源的嵌入式系统仿真工具,旨在为开发者提供一个无需实际硬件即可进行嵌入式系统开发与研究的平台。其主要目标是在Linux...

    DEWI PROJECT_FOLLOWME_arduino_Microcontroller_源码

    《DEWI PROJECT_FOLLOWME_arduino_...通过深入理解和实践这些知识点,开发者可以成功地构建出一个能跟随信号源移动的智能购物车。这样的项目不仅锻炼了编程技能,也展示了物联网技术在日常生活中的应用潜力。

    Follow-me-Learning-C.zip_Follow_ Follow

    总的来说,这份"Follow-me-Learning-C.zip"压缩包为学习者提供了一条清晰的学习路径,通过系统的课程设计和实例讲解,帮助学习者逐步掌握C语言的核心概念和技术,无论是对于初学者还是有经验的程序员,都是一份宝贵...

    jquery-scroll-follow.rar_Follow_ Follow

    一、jQuery Scroll Follow 插件概述 jQuery Scroll Follow是基于流行的JavaScript库jQuery开发的一个轻量级插件。它的主要作用是创建一种浮动效果,使得指定的DOM元素在用户滚动页面时,始终停留在屏幕的某一位置,...

    浅谈:nofollow标签的使用与分析

    nofollow是链接的HTML标签属性,站长和SEO人员可以通过这个属性来告诉搜索引擎不要追踪此网页上的链接,或不要追踪某个指定的链接, 这些或这个链接并不是本网站所推荐的...链接一旦使用nofollow之后,就不会导出权重了

    基于Java的Follow Me运动教练应用设计源码

    本项目为“基于Java的Follow Me运动教练应用设计源码”,包含61个文件,其中包括54个Java源文件、4个PNG图像文件、1个Gitignore忽略配置文件、1个XML配置文件以及1个YAML配置文件。该应用旨在为用户提供个性化的运动...

Global site tag (gtag.js) - Google Analytics