01.Hibernate课堂纪要
02.
03.为什么要使用Hibernate
04. 解决JDBC繁琐的代码问题。
05. Hibernate 是在JDBC的基础上进行封装,只需要少量的代码完成持久化工作
06.
07.什么是orm映射
08. 面向对象语言和关系数据库之间阻抗不匹配的问题。完成对象数据到关系数据库映射
09.
10.基本操作
11. 1. 添加包
12. 2. 添加hibernate.cfg.xml 文件
13. 3. 添加对象和映射文件 (object.hbm.xml)
14.
15.使用hibernate的七个步骤:
16. 1.读取配置文件
17. Configuration cfg = new Configuration().configre();
18. 2.创建sessionFactory factory = cfg.buildSessionFactory();
19. 3.创建session session = factory.opensession();
20. 4.打开事物 Transaction tx = session.beginTransaction();
21. 5.持久化操作 session.save();...
22. 6.提交事物 tx.commint();
23. 7.关闭session.close();
24.
25.
26.使用工具简化操作(操作方式)
27. 1. 添加hibernate支持
28. 2. 配置DB Browser 配置数据源
29. 2. 将表中的数据导出为实体和映射文件
30.
31.hibernate的三种状态
32. 1.瞬时状态:
33. 当new一个对象的时所处的状态为瞬时状态。
34. 2.持久状态:
35. save或update 的时所处的状态为持久状态
36. 3.离线状态
37. a> 删除前要先获取该对像,将该对象删除哦,获取的对象还存在,只是不能在于数据库
38. 打交道,不受hibernate管理,称为离线状态。
39. b> 删除数据或者关闭session的时候所处的状态为离线状态
40.
41.
42.get和load加载数据的区别
43. get:
44. 1. 使用get加载数据时,hibernate会先发hql语句,并将基本属性的数据加载进来。
45. 如果不存在该数据,会抛出nullException空指针。
46.
47. 2. 当关闭session后,使用get()加载其关联数据时,将抛出on session Exception
48. session关闭后属于离线状态,并不能再获取其关联的数据。处理此方式有两种方法:
49.
50. 方式一: 在配置文件中设置lazy属性为false。
51. 方式二:在代码块中先获取关联的非ID数据即可。
52.
53. 删除数据时使用。呵呵
54. 默认情况下,get不会去获取所关联的数据(session关闭的前提下)
55.
56. load:
57. 1. load 属于延迟加载。执行时hibernate 不会先发hql语句。先获取ID,如果没有用到非Id属性,load不会去加载其他数据。当数据库没有与之对象的数据,将抛出 ObjectNOFoundException. 处理方式方式有:
58.
59. 方式一:在配置文件中设置lazy属性为false。
60. 方式二:在代码块中先获取非Id的数据
61.
62. 更新数据使用...
63.
64.
65.
66.多对一单向关联(操作方式):
67.
68. 1. 在多的一方添加一的一方的实体作为属性
69.
70. 2. 配置文件中使用<many-to-one>标签,如:
71. <many-to-one name="group"
72. class="com.org.bean_many2one.Group" column="groupId" />
73. 3. 保存数据
74. 添加一的一方的数据
75. 添加多的一方的数据并将一的Object放入set()中
76.
77.一对多单向关联(操作方式):
78.
79. 1. 在一的一方添加set集合,并设置get和set属性如
80. private Set users = new HashSet(0);
81. 2.配置文件中使用<set>标签,如:
82. <set name="users">
83. <key column="gid" />
84. <one-to-many class="com.org.bean_one2many.User" />
85. </set>
86.
87. 3. 保存数据(先save多的一方,在使用集合将对象add进去):
88.
89. User user1 = new User();
90. user1.setUname("xiaoling");
91. session.save(user1);
92.
93. Group group = new Group();
94. group.setGname("北大");
95. group.getUsers().add(user1);
96.
97. session.save(group);
98. tx.commit();
99.
100.
101.一对多双向关联
102.
103. 1. 一的一方添加set集合属性
104. private Set users = new HashSet(0);
105. 配置文件:
106. <set name="users">
107. <key column="gid" />
108. <one-to-many class="com.org.bean_one2many2.User" />
109. </set>
110. 2. 多的一方添加一的一方的为属性,并设置get和set方式
111. private Group group ;
112. 配置文件:
113. <many-to-one name="group"
114. class="com.org.bean_one2many2.Group" column="gid" />
115.
116.
117.
118.多对多关联
119.
120. 1. 在A方使用Set集合为属性,在B那边使用A作为属性。
121. 2. 在A的一方配置配置文件
122. <set name="users">
123. <key column="uid"/>
124. <one-to-many class="com.org.bean_many2many.User"/>
125. </set>
126.
127. 在B的一方配置配置文件
128. <many-to-one name="group"
129. class="com.org.bean_many2many.Group" column="groupId" />
130.
131.
132.
133.**************************************************************
134.级联 cascade删除数据:
135.
136. 使用cascade,其属性有all 、 save-update 、 delete 、 none。
137. 一般使用save-update即可。
138. 1. cascade=“delete” :删除数据时,如果外键在允许为空的情况下可以
139. 执行操作,删除后多的一方为所关联的数据将会时Null,
140. 2.一般情况下不使用该操作,其危险性较高。
141.
142.
143.
144.inverse 属性
145. 针对多对多的关联,如果其中某一方设置inverse为true,那么这一方及放弃
146.他们之间的关联关系。不会出现双方一起维护信息而引起的数据冗余。
分享到:
相关推荐
在Java的ORM框架Hibernate中,实体管理是其核心功能之一,而实体的状态管理则是理解Hibernate工作原理的关键。本文将深入探讨Hibernate中的实体状态及其转换,帮助开发者更好地掌握如何有效地使用Hibernate进行数据...
hibernate和java类型转换,hibernate和java类型转换
Hibernate3 是一个强大的Java持久化框架,用于简化数据库与对象之间的交互。它是对象关系映射(ORM)工具的典范,允许开发人员使用面向对象的编程模型来操作数据库,而无需直接编写SQL语句。在本篇文章中,我们将...
Hibernate是一个开源的对象关系映射(ORM)框架,它封装了JDBC(Java Database Connectivity)的复杂性,并允许Java开发者以面向对象的方式操作数据库。Hibernate框架被广泛应用于企业级Java应用程序中,可以与...
这是一个讲解了关于hibernate三种状态之间的转换,如果想知道他们之间的相关总结和理解,这是一个不错的选择
在Java Web开发中,Hibernate是一个流行的对象关系映射(ORM)框架,它允许开发者使用Java对象来操作数据库。本文将探讨如何在Hibernate应用中进行编码转换配置、处理权限以及使用过滤器来控制缓存。 首先,编码...
**Hibernate学习笔记** Hibernate是一个强大的Java对象关系映射(ORM)框架,它为开发者提供了在Java应用程序中操作数据库的强大工具。本笔记将深入探讨Hibernate的核心概念、配置、实体管理、查询语言以及最佳实践...
《hibernate-extensions与Middlegen-Hibernate:数据库到Java对象的自动化转换》 在Java的持久化层开发中,Hibernate作为一款强大的ORM(对象关系映射)框架,极大地简化了数据库操作。然而,手动编写实体类和映射...
标题"hibernate的jar包"表明了这个压缩包包含的是与Hibernate相关的Java类库。Hibernate是一个流行的开源对象关系映射(ORM)框架,它允许开发者用面向对象的方式来处理数据库操作,简化了Java应用程序与数据库之间...
HibernateTools是Java开发人员在使用Hibernate ORM框架时的有力辅助工具集,主要目的是为了提高开发效率,简化数据库操作。在HibernateTools 3.2.4版本中,它包含了一系列的特性与插件,以支持更便捷地进行对象关系...
Hibernate是Java领域中一款著名的对象关系映射(ORM)框架,它允许开发者使用面向对象的编程方式来操作数据库。在Hibernate 5.2.9版本中,提供了许多增强的功能和优化,适合初学者进行学习和实践。这个压缩包包含的...
标题中的“hibernate和MySQL的jar”指的是Hibernate ORM框架与MySQL数据库之间的连接库。Hibernate是一种流行的Java对象关系映射(ORM)工具,它允许开发者使用面向对象的编程方式来操作数据库,而无需直接编写SQL...
Hibernate3是一个广泛使用的Java对象关系映射(ORM)框架,它允许开发者用面向对象的方式处理数据库操作,极大地简化了Java应用程序与数据库之间的交互。在这个"Hibernate3的依赖包"中,包含了运行Hibernate3应用...
Hibernate3 是一个非常重要的Java持久化框架,它允许开发者将对象模型与数据库关系模型进行映射,从而简化了数据存取的过程。这个压缩包“hibernate3必要jar包”显然是针对Hibernate3版本的,已经去除了冗余的库文件...
Hibernate是一款强大的Java持久化框架,它简化了数据库与Java对象之间的交互,使开发者可以更加专注于业务逻辑而不是数据访问层的实现。本压缩包提供的是Hibernate入门所需的jar包,包括了Hibernate的核心库以及与之...
《深入剖析Hibernate 3.2源代码》 Hibernate是一个开源的对象关系映射(ORM)框架,它极大地简化了Java应用程序与数据库之间的交互。在Hibernate 3.2版本中,开发者们能够更深入地理解其内部机制,从而提高开发效率...
《Hibernate 3.6 中文 CHM》是一个针对Hibernate 3.6版本的详细使用指南,旨在帮助开发者理解和掌握这个强大的对象关系映射(ORM)框架。Hibernate是Java开发中的一个重要工具,它允许程序员以面向对象的方式处理...
EJB(Enterprise JavaBeans)和Hibernate是两种在Java企业级应用开发中广泛使用的技术。EJB是Java EE(Java Enterprise Edition)的一部分,主要用于构建可扩展的、安全的、事务处理的分布式应用程序。而Hibernate则...
【标题】"HibernateDemo"是一个基于Java的开源对象关系映射框架示例,它用于简化数据库操作。这个压缩包提供了一个简单的入门项目,帮助初学者理解如何使用Hibernate框架。通过这个例子,我们可以深入学习Hibernate...
Hibernate是Java平台上的一款开源对象关系映射(ORM)框架,它允许开发者用面向对象的方式处理数据库操作。在SSH(Spring、Struts、Hibernate)框架中,Hibernate作为持久层的解决方案,极大地简化了数据库操作的...