java hibernate 是什么意思_Java开源项目Hibernate意义是什么?
)Hibernate意义
在一个真正的OOAD中,我们的设计首先是做UML建摸,最终将一个系统涉及所有对象(这个东西不是东西那么简单)用类图来体现一个完整的设计,我们最后可能得到这几种类:控制业务逻辑的类,保存业务数据的类module(bean类),辅助类或者更多(具体问题具体分析,但是将业务所需数据归结为一个类module更适合分层)。
到数据库低层实现的时候,
为了获取数据或者存储数据,你不得不为此加上一个操作数据库的控制逻辑,到此,你完美的设计估计会为此付出巨大的努力,因为你看到的业务数据层是一个复杂的模块,即使从面向对象观点来看,我们UML类图中的,业务数据层只是一个数据模块。
Hibernate已经帮我们解决了业务数据层这个本来十分复杂的模块的底层实现,现在,我们只要在外层裹上我们的代表数据的类即可。
二)对象模型与关系数据库模型差异
在写出我初探Hibernate的感受之前,我觉得写下这一节还是很有必要的。带着问题研究远远比带着好奇研究要意义深远得多。
问题领域:
关系型数据库是存储数据的最好选择,但是随着OO技术日益发展,在persisitent层上关系型数据库的设计体系与OO体系格格不入,可以想象,当满脑子充斥着OOAD的你想到怎么隔离满天飞的SQL语句时,那是多么痛苦的表情。无论你的业务层设计多么完美,在真正储存数据或者加载数据时,你面对的无非是一大堆封装好的数据,这些数据在JDBC中已经完全失去对象(这里的对象称之为业务对象或许更为确切)的意义,你整体的OOAD到此为止。
为什么会造成这种情况呢?原因是对象模型与关系数据库模型根本设计体系之间的差别。
对象模型与关系数据库模型各自理论出发点是不同的:对象模型的理论体系可以简单归结为这两点:
1) 以对象看待世界。
2) 对象间关系(继承,关联,聚合,组合)维系着整体构成。
而关系数据库模型唯一出发点是有效储存数据,KEY是数据库的关键技术,关系在这里只是各个数据表的KEY之间的关联,这种关联我觉得应该称之为数据的关联,其表达的意义远远没有对象之间的关联那么深广。
那么,我现在最关心的问题是hibernate是怎么利用关系数据库的数据表KEY关联来表达对象之间的关系呢?
在进入正式研究Hbernate之前,我们可以思索一下问题的似乎简单与似乎十分复杂的矛盾。
我们设计的代表数据层的所有类必须完美的体现在数据表之中。可以这样总结:class-àtableclass1—(关系)---class2------〉table1---(关系)-----table2
问题的解决似乎很简单,特别是对于javabean构架,更是简单(看起来简单而已!!!)。
想象一个简单的javabean类:public class SimpleBean{ protected int id; protected String name; public int getId(){
return id; } public void setId(int id){
this。
id=id; } public String getName(){
return name; } public void setName(String name){
this,name=name; }}。
全部
java hibernate 是什么意思_Java开源项目Hibernate意义是什么?相关推荐
- Java开源项目Hibernate包作用详解
Java开源项目Hibernate包作用详解 本文引自:http://hi.baidu.com/nick6610/blog/item/70b58afa0d0eab9259ee90f7.html Jav ...
- 【源码+教程】Java学生成绩在线管理项目_Java实战项目_Java开源项目_Java毕设项目_Java毕业设计_计算机毕业设计_Java项目开发
今天为大家带来的是Java实战项目--学生成绩在线管理,可以用来做毕业设计喔~源码和教程就在下方.请大家查收~[源码+教程]Java学生成绩在线管理项目_Java实战项目_Java开源项目_Java毕 ...
- java 博客系统_讲解开源项目:5分钟搭建私人Java博客系统
本文适合刚学习完 Java 语言基础的人群,跟着本文可了解和运行 Tale 项目.示例均在 Windows 操作系统下演示 本文作者:HelloGitHub-秦人 HelloGitHub 推出的< ...
- java开源项目源代码_java开源项目源代码
java开源项目 源代码 http://www.codase.com/ http://java-source.net/ https://www.dev.java.net/ 名称 摘要 种类 appfu ...
- github java开源项目经验_Java 开源项目 GitHub 趋势周报 20201230
[关注获取更多精选开源图书] 大家好!我是超级机器人 UltraBot,今天给大家推送本周 Java 开源项目 GitHub 趋势周报,本周更新开源项目 64. brettwooldridge / H ...
- JAVA连接Excel最好用的开源项目EasyExcel,官方使用文档及.jar包下载
EasyExcel是一个基于Java的简单.省内存的读写Excel的开源项目.在尽可能节约内存的情况下支持读写百M的Excel. github地址:https://github.com/alibaba ...
- java跳骚市场的代码,开源项目在闲鱼、b 站上被倒卖?这是什么骚操作?
万物皆可骚. 起因 - 又是一封邮件 2020 年 3 月 2 日,收到了一封邮件,对,这次故事的起因又是一封邮件,和上次写个bug被国家信息安全漏洞共享平台抓到了一样. 这是一条评论通知邮件,一开始 ...
- 推荐一个java的商业级saas电商开源项目
该项目使用Java开发,SpringBoot框架.MyBatis-plus持久层框架.Redis作为缓存.MySql作为数据该库. 前端vuejs作为开发语言,使用uniapp编码,同时支持微信小程序 ...
- JFlow工作流项目集成案例_Java开源项目 RuoYi v4.1.0
RuoYi平台简介 RuoYi是一个后台管理系统,基于经典技术组合(Spring Boot.Apache Shiro.MyBatis.Thymeleaf)主要目的让开发者注重专注业务,降低技术难度,从 ...
最新文章
- java 程序编译和运行的过程
- 吴恩达深度学习笔记10-Course4-Week1【卷积神经网络】
- 【C语言重点难点精讲】C语言文件
- FireMonkey 平台初探
- lambda不是python的保留字_python-nonlocal关键字的使用,lambda表达式(学习到function到变...
- wordpress 调用css,WordPress调用CSS最常用的方法有哪些?
- webview的javascript与Native code交互
- 看完电影《门锁》感觉脊背发凉,智慧园区带来安全感
- linux 的tac命令,每天学一个 Linux 命令(102):tac
- 冰箱10分钟启动一次_冰箱正常多久启动一次
- [ 报错记录 ]使用springboot时@Runwith报红
- excel 分组排名 countif
- 精读加密媒体扩展(Encrypted Media Extensions,EME)
- Tesseract-OCR安装与使用
- 微软证实10月25日正式发布Windows8系统
- IP2188中文数据手册
- Uniapp自定义相机界面
- v-show和v-if
- 计算机主机软件,计算机上提供了哪些软件来编辑音乐
- 淘宝/天猫、1688、京东API接口—item_search - 按关键字搜索淘宝商品
热门文章
- 创始人退休后的Python,起飞还是没落?
- java基础知识 API文档 字符串基本操作 正则表达式 Object
- CISA国际信息系统审计师
- Hive建表(分区表、非分区表)实例
- 工控系统主动安全防御体系的构建
- C#winform 从ftp下载文件(带进度条)、获取文件(夹)的名字
- mysql能放在电脑哪个盘_电脑文件一般放在哪个盘好呢?
- 【moodle】moodle dialog开发笔记 1
- 一座小桥(最多只能承重两个人)横跨南北两岸,任意时刻同一方向只允许一个人过桥,南侧桥段和北侧桥段较窄只能通过一个人,桥中央一处宽敞,允许两个人通过或歇息。试用P(wait)V(signal)操作实现
- 我的职业观——HP大中华区总裁孙振耀退休感言