Hibernate征途(一)之初识】的更多相关文章

相见恨晚 很久以前,大概从开始接触数据库开始,就闪过这样一个想法,怎么看怎么觉得数据库表和vb的类模块很像,不是么?除了vb类模块还有函数外:越往下学觉得二者越像,尤其在三层时学到实体类的概念,我去,这二者基本合体了.除了组成,还有功能上,上次学术交流,说到类和类转移耦合时可以借住第三个类,同样,当表和表关系为多对多时,我们也可以借住第三张表:类似的还有类与类之间的关系,与数据库概念设计中的实体对应关系…… 之所以对着二者的关系感兴趣,是因为还有一把记忆犹新的辛酸泪: 在.NET阶段,使用EA架…
把这两种映射放到一起说,是因为这两种映射不像前面的复用型映射.数量和方向型映射那么分类鲜明,所以放到了这个“其他”里面. 复合主键映射 在关系模型中,复合主键和其他的主键方式没有很大区别,但是反映到对象模型的配置上面,差别就比较大了:在对象模型中,复合主键需要一个独立的类,以下面把年和月作为复合主键为例: 复合主键类 import java.io.Serializable; public class FiscalYearPeriodPK implements Serializable { //核…
本来如果和关系模型一样,只需要一对一.一对多.多对多映射就够了,但是前面<Hibernate征途(四)之映射 序>中说到,对象模型中关联是有方向的,所以对一对多而言,就会产生一对多还是多对一的问题,同时一种映射会产生两种方向,简单罗列一下如下: 多对一映射 一对一单向主键映射 一对一双向主键映射 一对一单向唯一外键关联 一对一双向唯一外键关联 一对多单向关联 一对多双向关联 多对多单向关联 多对多双向关联 鉴于前面提到的理由,我不会对每个映射细粒度分析,以下我们从类属性.映射文件.数据库表来解…
上篇博客<Hibernate征途(二)之基础与核心>介绍了Hibernate的基础内容和核心内容,这篇博客简单实践一下.第一篇博客也说过Hibernate是一种JDBC的简化方案,既然是和数据库相关的操作,自然离不开CRUD,也就是常说的增删改查: C reate new records     R etrieve existing records     U pdate existing records     D elete existing records. 七步骤 从步骤来看,Hibe…
之所以把这两种映射放到一起说,是因为二者都是以复用为目的,减少了代码和配置量,这是相同点:二者之间的不同点类似继承和实现的区别:继承的类是一个事物的抽象,而实现的接口仅仅是功能的抽象. 继承映射 如上面所说,以下面类图为例: 它的映射方式有三种,它们的类和属性相同,只是映射文件不同,当然也导致映射的数据结构也不同,先一下以上三个类,再根据映射文件的不同说明每种映射方式. Animal public class Animal { private int id; private String nam…
根据我司优良传统,必然要由上向下.逐级深入,所以在钻到Hibernate细节之前,先从宏观上行欣赏一下Hibernate.为什么说是欣赏?大家可以自行查阅一下Hibernate知识外的信息,创始人和Hibernate的来源都挺有意思. ORM 众所周知Hibernate是ORM框架,等等,先来说一下ORM,即Objcect Relation Mapping,对象-关系映射,我认为这是Hibernate的操作核心,这个上篇博客简单阐述了一下,学Hibernate时刻注意这点. 优缺点 单纯地说一个…
一.对象的持久化 狭义的理解: 持久化仅仅指把对象永久的保存到数据库中. 广义的理解: 持久化包括和数据库相关的各种操作.         保存: 把对象永久保存到数据库中.         更新: 更新数据库中对象的状态.         删除: 从数据库中删除一个对象.         查询: 根据特定的查询条件,把符合查询条件的一个或者多个对象加载到内存中.   二.ORM      ORM(Object-Relation-Mapping),对象关系映射.      ORM的思想: 将关系…
生活就像一杯咖啡,让你我慢慢的品尝,品尝它的苦涩和甘甜...... 一.什么是Hibernate缓存. 解析:白话来说就是缓存数据的容器 官方标准点缓存:是计算机领域的概念,它介于应用程序和永久性数据存储源之间. 作用:降低应用程序直接读写数据库的频率,从而提高程序的运行性能.缓存中的数据是数据存储源中数据的拷贝.缓存的物理介质通常是内存. 二.缓存一般分为三个类 一级缓存 二级缓存 查看缓存 三.一级缓存 场景一:使用同一个session连续查询两次同一个对象 /查询学生信息 public s…
Hibernate的优势 l 优秀的Java 持久化层解决方案  (DAO) l 主流的对象—关系映射工具产品 l 简化了JDBC 繁琐的编码 l 将数据库的连接信息都存放在配置文件 l 自己的ORM框架 l 一定要手动实现Hibernate(模拟Hibernate实现) 一:创建一个java project项目 如下图 2:创建一个大配置文件 <?xml version="1.0" encoding="UTF-8"?> <!DOCTYPE hib…
使用hibernate前需要导入相关JAR包. 1.它可以接受词文法语言描述,并能产生识别这些语言的语句的程序 2.是一个Java的XML API,类似于jdom,用来读写XML文件的 3.支持注解配置 4.核心配置 5.jpa注解是hibernate的核心 6.编辑和创建Java字节码的类库 7.使用一个注解处理器来实现你的带注释的接口的具体类 8. 解释不清.. 9.单元测试 10.mysql驱动jar 1.src下创建hibernate.cfg.xml文件,提供数据库信息 <?xml ve…
//针对myEclipse2014版本 怎样新建一个工程实现这些东西的导入. 打开myeclipse. 2.点击右上角的open perspective 找到这个 MyEclipse Database Explorer.点击ok. 3.右键新建数据库驱动器 4.新建这样一个用以链接的数据库: 5.然后完成第三部的那个创建目录: 6. 选择要展示的视图, 1)展示所有视图 2)展示默认视图 3)展示选中视图 3)a.当前这个 链接里面可以对应到的数据库 b.下图为对应 c.选择我们新建立的数据库:…
这篇博客是hibernate学习的第一篇,主要简介hibernate框架,之后简单说一下hibernate的文件夹结构,最后写一个简单的hibernate实例.通过这三步来简单的认识一下hibernate. 废话不多说,步入正题.首先简介一下hibernate框架,它是一种基于JDBC的主流持久化框架,是一个优秀的orm实现:它对JDBC进行了轻量级的封装,大大简化了数据訪问层繁杂的反复代码:并且它利用了java反射机制来实现程序的透明性:它的本意是从对象出发而非关系数据库出发,这一点也就是说明…
下载Hibernate的jar包 把下面jar文件考到项目lib下 然后在myeclipse中打开database的view视图创建一个新的数据库连接 接下来,配置连接,须要导入ORACLE的jar包 我创建的连接名为wjj 然后在项目中增加Hibernate的配置信息,能够用刚才创建的数据库连接用myeclipse生成 首先,点击项目右键 接下来,须要把那些划红线的东西勾掉 next next,,DB Driver用刚才创建的数据库连接就可以 最后,勾掉此选项 最后在项目的src项目里产生此文…
ORM概念 在学习 Hibernate 之前,我们先来了解ORM   对象关系映射 O, Object  对象 R,Realtion 关系  (关系型数据库: MySQL, Oracle…) M,Mapping  映射 ORM, 解决什么问题? 存储:   能否把对象的数据直接保存到数据库? 获取:   能否直接从数据库拿到一个对象? 想做到上面2点,必须要有映射!   总结:          Hibernate与ORM的关系?             Hibernate是ORM的实现,简化对…
     相信所有做后端的程序员同行们,没有不知道Hibernate大名的.这是一个经典的轻量级Java EE持久层的解决方案,它使得我们程序员能以面向对象的思维操作传统的关系型数据库,这也是其存在的最大意义所在.当然也有很多人说Hibernate不就是封装了我们的JDBC实现对数据库的增删改查吗?,但其实Hibernate所做的事情远远不止于此,它是一个非常优秀的框架,甚至在目前依然占有很大一部分市场.下面我们就详细的学习下该框架的最基本的一些概念和配置,主要涉及内容有如下几点: Hibern…
     上一篇文章我们简单介绍了Hibernate相关的一些最基本的文件及其作用,并在最后完整的搭建了Hibernate的运行环境,成功的完成了与数据库的映射.但是至于其中的一些更加细节的地方并没有很详尽的解释,本篇则主要介绍Hibernate中的一个关键元素,持久化类.主要涉及以下一些内容: 定义用作持久化类的基本要求 持久化对象的几种不同状态及其相互之间的转换 使用Hibernate完成对数据库的crud操作 一.定义用作持久化类的基本要求      所谓的持久化类其实本质上也就是一个普通…
上篇文章我们对持久化对象进行的学习,了解了它的三种不同的状态并通过它完成对数据库的映射操作.但这都是基于单张表的操作,如果两张或者两张以上的表之间存在某种关联,我们又该如何利用持久化对象进行操作呢?本篇主要介绍的关联映射就是针对有着某种关联的多张表的各种操作,主要涉及内容如下: 组合主键的映射 组件的映射 单向多对一的映射 单向一对多的映射 双向一对多的映射 级联映射 一.组合主键的映射操作      根据我们的上篇文章,对于单一主键,在对象映射配置文件中使用 id标签即可完成配置.但是,往往有…
上篇我们介绍了关联映射的几种形式,有单向多对一,单向一对多,还有双向一对多.本篇接着介绍有关关联映射的其他几种映射方式,主要有以下几种: 基于外键的单向一对一关联映射 基于主键的单向一对一关联映射 单向多对多关联映射 一.基于外键的单向一对一关联映射      具有一对一关联的表结构也是很常见的,比如:一个人对应于一张身份证.于是我们的person表会有一个外键关联到 idcard表的主键,只要这个外键列唯一即可保证person到idcard表的关系由多对一变为一对一,也就是说单向的一对一关联映…
     前面的两篇文章中,我们介绍了两张表之间的各种相互关联映射关系,但往往我们也会遇到两张表甚至多张表之间共有着多个相同的字段.例如: 如图,student表和teacher表共同具有id,name,age等字段,而我们的继承映射就是这样的一个思想,抽象出这些共有的字段为一张父表,让子表对其进行继承,这样就可以大大降低我们实体类代码的冗余性,增强其结构的完善. Hibernate支持以下三种数据表的生成策略: 每个类分层结构一张表 每个子类一张表 每个具体类一张表 一.每个类分层结构一张表…
Hibernate.cfg.xml 主配置 Hibernate.cfg.xml 主配置文件夹中主要配置:数据库链接配置,其他参数配置,映射信息等. 常用配置查看源码: hibernate-distribution-3.6.0.Final\project\etc\hibernate.properties session-factory 节点: 一般来说一个数据库对应着一个session-factory节点. 1.数据库链接配置:(以mysql为例子)       hibernate.propert…
一.概念引入 1.持久化: 狭义概念:数据存储在物理介质不会丢失. 广义概念:对数据的CRUD操作都叫做持久化. 2.加载: hibernate里,数据从数据库中加载到session. 3.ORM -- Object Relation Mapping 好处: 解决阻抗不匹配:对象与关系数据库不匹配. 没有侵入性:在代码中不用去继承或者实现hibernate类或实现hibernate提供的接口. hibernate:一个ORM的轻量级框架,解决持久化问题,是程序员可以从编写复杂的JDBC工作中解放…
hibernate是一个开源的对象关系映射框架(ORM).对JDBC进行了轻量级的封装.将对象和数据库表建立映射关系,hibernate框架使用在数据持久化层(DAO). ORM:对象关系映射(Object Relational Mapping).采用配置文件映射元数据来描述对象关系的映射细节. 第一个hibernate例子 第一步:创建实体类 Hibernate要求实体类必须提供一个不带参数的默认构造方法.因为程序运行时,Hibernate会运用java的反射机制,创建实体类的实例. publ…
Hibernate的优势 优秀的Java 持久化层解决方案  (DAO) 主流的对象—关系映射工具产品 简化了JDBC 繁琐的编码 将数据库的连接信息都存放在配置文件 自己的ORM框架 一定要手动实现Hibernate(模拟Hibernate实现) 2:创建一个大配置文件 <?xml version="1.0" encoding="UTF-8"?> <!DOCTYPE hibernate-configuration PUBLIC "-//…
一  配置过程 1. 创建一个项目 2. 导包    required里的包 optional里的c3p0连接池的三个包 数据库驱动包 Junit 3.创建Hibernate的配置文件(hibernate.cfg.xml) 4.创建持久化的实体类对象User 5.创建对象与关系型数据库之间的映射(user.hbm.xml或使用注解) 6.通过Hibernate访问数据库 二  示例 配置文件实现: 1.创建项目hibernate-01 2.导入需要的包 3.创建Hibernate的配置文件(hi…
第一步: 导包:(这是我根据其他网站的介绍导入的包,可能不完善,但开发没什么问题,遇到问题再说) 当然还有mysql的jar包 第二步:进行hibernate环境配置 在classpath目录下建立hibernate.cfg.xml配置文件,名字最好不要修改: 内容: <?xml version="1.0" encoding="UTF-8"?> <!DOCTYPE hibernate-configuration PUBLIC "-//Hi…
1):什么是 Hibernate? Hibernate是一个开放源代码的对象关系映射框架,它对JDBC进行了非常轻量级的对象封装,它将POJO与数据库表建立映射关系,是一个全自动的orm框架,hibernate可以自动生成SQL语句,自动执行, 使得Java程序员可以随心所欲的使用对象编程思维来操纵数据库. Hibernate可以应用在任何使用JDBC的场合,既可以在Java的客户端程序使用,也可以在Servlet/JSP的Web应用中使用,最具革命意义的是,Hibernate可以在应用EJB的…
Hibernate 框架 1.1   什么是框架? 框架是一个提供了可重用的公共结构半成品. 2.1   关于Hibernate Hibernate是数据持久层的一个轻量级框架.数据持久层的框架有很多比如:iBATIS,myBatis,Nhibernate,Siena等等.并且Hibernate是一个开源的orm(Object relations mapping)框架,提供了查询获取数据的方法,用面向对象的思想来操作数据库,节省了我们开发处理数据的时间. (数据持久化是将内存中的数据模型转换为存…
声明:关于hibernate的学习.非常大一部分东西都是概念性的. 大家最好手里都有一份学习资料,在我的博文中.我不会把书本上的概念一类的东西搬过来.那没有不论什么意义.关于hibernate的学习,我主要是通过演示项目让大家加深一些概念的理解,同一时候,也是为了让大家深层次的理解hibernate.而不仅仅是单纯的停留在概念上,假设仅仅是单纯的理解一些概念性的东西.到最后你们肯定会一无所获.并且过段时间就会忘记.所以以后的hibernate的学习.希望大家多看下演示项目.下载下来部署上演示看看…
1. 使用jdbc进行数据库操作:获取数据库连接,编写sql语句,执行sql操作,关闭连接. 比如:每次创建连接,释放资源----使的执行效率降低: 解决方案:连接池. 编写sql语句动作----简单,重复劳动,非对象 解决方案:使用工具生成sql. 执行sql操作----将对象转换为sql语句,每次将结果封装为对象: 解决方案:封装工具 2.Hibernate是什么? Hibernate是一个对象关系映射的开源框架.对jdbc进行了轻量级的封装,支持多种数据库自动完成sql编写. 可以使得用面…
Hibernate概述 Hibernate是一个ORM(对象关系映射)映射框架,它的核心思想就是在底层对JDBC进行了一次封装. 什么是框架 IT语境中的框架,特指为解决一个开放性问题而设计的具有一定约束性的支撑结构.在此结构上可以根据具体问题扩展.安插更多的组成部分,从而更迅速和方便地构建完整的解决问题的方案. ————补充解释———— 也就是说: 1)框架本身一般不完整到可以解决特定问题: 2)框架天生就是为扩展而设计的: 3)框架里面可以为后续扩展的组件提供很多辅助性.支撑性的方便易用的实…