`
苏叶晚晚
  • 浏览: 15875 次
  • 性别: 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类型转换

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

    Hibernate中的实体状态及转换

    Hibernate 实体状态 瞬态(transient) 持久化(persistent) 脱管(detached) 转换

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

    hibernate转换编码配置和权限及java代码,请大家共享.

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

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

    MyEclipse中hibernate的配置

    Hibernate是开始做暑假的比赛项目之前学的第一门新技术(花了半天啃了大半本书),可惜最后项目用的是JPA。Hibernate是现在企业运用的最主流持久层中间件技术,恩,貌似可以这么说吧。 和JDBC比较一下,同样都是...

    hibernate3.3 api chm格式

    hibernate3.3已经转成chm格式....

    08.拓薪教育-hibernate4.3的hibernate.cfg.xml基本配置.part2

    高级Hibernate4开发技术:ORM思想,hibernate介绍,hibernate.cfg.xml配置,hbm.xml映射文件详解,主键生成策略使用,PO对象状态及状态的转换分析、一级缓存,Hibernate数据检索技术,Hibernate高级映射技术,...

    hibernate配置文件工具

    4.可以选择表,hibernate 主键策略; 5.可以设置生成的 javaBean 的 package 路径; 6.可选择生成的文件保存路径; 7.数据库服务器信息可保存,编辑,删除; 8.支持数据库 mysql5,oracle10g,mssql200,mssql2005...

    hibernate4.3.8 demo

    hibernate4.3.8 自带demo

    hibernate核心包

    Hibernate3.jar hibernate核心包 antlr-2.7.6.jar 一个语言转换工具(Hibernate利用它实现 HQL 到 SQL 的转换模板相关操作需要包) c3p0-0.9.1.jar c3p0数据源实现的jar文件 cglib.jar CGLIB 字节码解释器 commons-...

    hibernate对象转换数据库表

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

    Hibernate主键生成方式 (转)

    刚学习JAVA,所以找了点资料给以后新学的朋友方便

    hibernate基础实验

    掌握Hibernate的基本功能和基本用法 通过Hibernate将一个Java对象插入到数据库表中 (1) Hibernate是一个面向Java环境的对象/关系数据库映射工具,Hibernate不仅管理Java类型到数据库表的映射,还提供查询数据和...

    hibernate 3.2 官方中文参考手册(CHM)

    Hibernate的目标是对于开发者通常的数据持久化相关的编程任务,解放其中的95%。对于以数据为中心的程序来说,它们往往只在数据库中使用存储过程来实现商业逻辑,Hibernate可能不是最好的解决方案;对于那些在基于Java的...

    深入浅出Hibernate源码

    菜单window -&gt; preference -&gt; Java -&gt; Build Path -&gt; User Librarys,分别建立名为Hibernate2,hibernate3,mysql-jdbc的用户库,分别包含对应的lib文件(如hibernate2包含hibernate-2.1目录下的hibernate2.jar及其lib...

    springMVC+hibernate+mybatis整合

    springMVC+hibernate+mybatis整合框架搭建Demo...

    Hibernate关系映射XML生成工具

    Middlegen-Hibernate-r5 Hibernate关系映射XML生成工具,MYSQL数据库的生成配置文件已经做好。

    08.拓薪教育-hibernate4.3的hibernate.cfg.xml基本配置.part1

    高级Hibernate4开发技术:ORM思想,hibernate介绍,hibernate.cfg.xml配置,hbm.xml映射文件详解,主键生成策略使用,PO对象状态及状态的转换分析、一级缓存,Hibernate数据检索技术,Hibernate高级映射技术,...

    Hibernate开发租房系统终极版(可运行-附数据库脚本)

    Hibernate开发租房系统终极版(可运行 附数据库脚本) 最近看了CSDN上几个Hibernate开发的租房系统 不是版本太老就是不能运行 闹心了一星期 自己终于成功运行 另附上Oracle开发脚本 注意:一 MyEclipse8的可直接...

    Hibernate 原理与配置快速入门(转)

    Hibernate原理与配置快速入门 博文链接:https://linde13652.iteye.com/blog/162777

Global site tag (gtag.js) - Google Analytics