`
苏叶晚晚
  • 浏览: 16337 次
  • 性别: Icon_minigender_2
  • 来自: 湖北
最近访客 更多访客>>
社区版块
存档分类
最新评论

转转转!hibernate

阅读更多
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.他们之间的关联关系。不会出现双方一起维护信息而引起的数据冗余。
分享到:
评论

相关推荐

    Hibernate中的实体状态及转换

    在Java的ORM框架Hibernate中,实体管理是其核心功能之一,而实体的状态管理则是理解Hibernate工作原理的关键。本文将深入探讨Hibernate中的实体状态及其转换,帮助开发者更好地掌握如何有效地使用Hibernate进行数据...

    hibernate和java类型转换

    hibernate和java类型转换,hibernate和java类型转换

    hibernate3 hibernate3

    Hibernate3 是一个强大的Java持久化框架,用于简化数据库与对象之间的交互。它是对象关系映射(ORM)工具的典范,允许开发人员使用面向对象的编程模型来操作数据库,而无需直接编写SQL语句。在本篇文章中,我们将...

    Hibernate Hibernate5 讲义 PDF

    Hibernate是一个开源的对象关系映射(ORM)框架,它封装了JDBC(Java Database Connectivity)的复杂性,并允许Java开发者以面向对象的方式操作数据库。Hibernate框架被广泛应用于企业级Java应用程序中,可以与...

    hibernate的三种状态及其相互转换

    这是一个讲解了关于hibernate三种状态之间的转换,如果想知道他们之间的相关总结和理解,这是一个不错的选择

    hibernate转换编码配置和权限及java代码

    在Java Web开发中,Hibernate是一个流行的对象关系映射(ORM)框架,它允许开发者使用Java对象来操作数据库。本文将探讨如何在Hibernate应用中进行编码转换配置、处理权限以及使用过滤器来控制缓存。 首先,编码...

    Hibernate学习笔记!

    **Hibernate学习笔记** Hibernate是一个强大的Java对象关系映射(ORM)框架,它为开发者提供了在Java应用程序中操作数据库的强大工具。本笔记将深入探讨Hibernate的核心概念、配置、实体管理、查询语言以及最佳实践...

    hibernate-extensions和Middlegen-Hibernate

    《hibernate-extensions与Middlegen-Hibernate:数据库到Java对象的自动化转换》 在Java的持久化层开发中,Hibernate作为一款强大的ORM(对象关系映射)框架,极大地简化了数据库操作。然而,手动编写实体类和映射...

    hibernate的jar包

    标题"hibernate的jar包"表明了这个压缩包包含的是与Hibernate相关的Java类库。Hibernate是一个流行的开源对象关系映射(ORM)框架,它允许开发者用面向对象的方式来处理数据库操作,简化了Java应用程序与数据库之间...

    HibernateTools-3.2.4

    HibernateTools是Java开发人员在使用Hibernate ORM框架时的有力辅助工具集,主要目的是为了提高开发效率,简化数据库操作。在HibernateTools 3.2.4版本中,它包含了一系列的特性与插件,以支持更便捷地进行对象关系...

    hibernate5.2.9

    Hibernate是Java领域中一款著名的对象关系映射(ORM)框架,它允许开发者使用面向对象的编程方式来操作数据库。在Hibernate 5.2.9版本中,提供了许多增强的功能和优化,适合初学者进行学习和实践。这个压缩包包含的...

    hibernate和MySQL的jar

    标题中的“hibernate和MySQL的jar”指的是Hibernate ORM框架与MySQL数据库之间的连接库。Hibernate是一种流行的Java对象关系映射(ORM)工具,它允许开发者使用面向对象的编程方式来操作数据库,而无需直接编写SQL...

    Hibernate3的依赖包

    Hibernate3是一个广泛使用的Java对象关系映射(ORM)框架,它允许开发者用面向对象的方式处理数据库操作,极大地简化了Java应用程序与数据库之间的交互。在这个"Hibernate3的依赖包"中,包含了运行Hibernate3应用...

    hibernate3必要jar包

    Hibernate3 是一个非常重要的Java持久化框架,它允许开发者将对象模型与数据库关系模型进行映射,从而简化了数据存取的过程。这个压缩包“hibernate3必要jar包”显然是针对Hibernate3版本的,已经去除了冗余的库文件...

    Hibernate入门jar包

    Hibernate是一款强大的Java持久化框架,它简化了数据库与Java对象之间的交互,使开发者可以更加专注于业务逻辑而不是数据访问层的实现。本压缩包提供的是Hibernate入门所需的jar包,包括了Hibernate的核心库以及与之...

    hibernate-3.2源代码

    《深入剖析Hibernate 3.2源代码》 Hibernate是一个开源的对象关系映射(ORM)框架,它极大地简化了Java应用程序与数据库之间的交互。在Hibernate 3.2版本中,开发者们能够更深入地理解其内部机制,从而提高开发效率...

    hibernate 3.6 中文 chm

    《Hibernate 3.6 中文 CHM》是一个针对Hibernate 3.6版本的详细使用指南,旨在帮助开发者理解和掌握这个强大的对象关系映射(ORM)框架。Hibernate是Java开发中的一个重要工具,它允许程序员以面向对象的方式处理...

    ejb+hibernate资料 ejb+hibernate资料

    EJB(Enterprise JavaBeans)和Hibernate是两种在Java企业级应用开发中广泛使用的技术。EJB是Java EE(Java Enterprise Edition)的一部分,主要用于构建可扩展的、安全的、事务处理的分布式应用程序。而Hibernate则...

    HibernateDemo

    【标题】"HibernateDemo"是一个基于Java的开源对象关系映射框架示例,它用于简化数据库操作。这个压缩包提供了一个简单的入门项目,帮助初学者理解如何使用Hibernate框架。通过这个例子,我们可以深入学习Hibernate...

    hibernate-release-5.2.10

    Hibernate是Java平台上的一款开源对象关系映射(ORM)框架,它允许开发者用面向对象的方式处理数据库操作。在SSH(Spring、Struts、Hibernate)框架中,Hibernate作为持久层的解决方案,极大地简化了数据库操作的...

Global site tag (gtag.js) - Google Analytics