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 实体状态 瞬态(transient) 持久化(persistent) 脱管(detached) 转换
hibernate转换编码配置和权限及java代码,请大家共享.
这是一个讲解了关于hibernate三种状态之间的转换,如果想知道他们之间的相关总结和理解,这是一个不错的选择
Hibernate是开始做暑假的比赛项目之前学的第一门新技术(花了半天啃了大半本书),可惜最后项目用的是JPA。Hibernate是现在企业运用的最主流持久层中间件技术,恩,貌似可以这么说吧。 和JDBC比较一下,同样都是...
hibernate3.3已经转成chm格式....
高级Hibernate4开发技术:ORM思想,hibernate介绍,hibernate.cfg.xml配置,hbm.xml映射文件详解,主键生成策略使用,PO对象状态及状态的转换分析、一级缓存,Hibernate数据检索技术,Hibernate高级映射技术,...
4.可以选择表,hibernate 主键策略; 5.可以设置生成的 javaBean 的 package 路径; 6.可选择生成的文件保存路径; 7.数据库服务器信息可保存,编辑,删除; 8.支持数据库 mysql5,oracle10g,mssql200,mssql2005...
hibernate4.3.8 自带demo
Hibernate3.jar hibernate核心包 antlr-2.7.6.jar 一个语言转换工具(Hibernate利用它实现 HQL 到 SQL 的转换模板相关操作需要包) c3p0-0.9.1.jar c3p0数据源实现的jar文件 cglib.jar CGLIB 字节码解释器 commons-...
Hibernate是一个开放源代码的对象关系映射框架,它对JDBC进行了非常轻量级的对象封装,使得Java程序员可以随心所欲的使用对象编程思维来操纵数据库 Hibernate最初级的操作,使用SchemaExport创建数据表 本资源自带...
刚学习JAVA,所以找了点资料给以后新学的朋友方便
掌握Hibernate的基本功能和基本用法 通过Hibernate将一个Java对象插入到数据库表中 (1) Hibernate是一个面向Java环境的对象/关系数据库映射工具,Hibernate不仅管理Java类型到数据库表的映射,还提供查询数据和...
Hibernate的目标是对于开发者通常的数据持久化相关的编程任务,解放其中的95%。对于以数据为中心的程序来说,它们往往只在数据库中使用存储过程来实现商业逻辑,Hibernate可能不是最好的解决方案;对于那些在基于Java的...
菜单window -> preference -> Java -> Build Path -> User Librarys,分别建立名为Hibernate2,hibernate3,mysql-jdbc的用户库,分别包含对应的lib文件(如hibernate2包含hibernate-2.1目录下的hibernate2.jar及其lib...
springMVC+hibernate+mybatis整合框架搭建Demo...
Middlegen-Hibernate-r5 Hibernate关系映射XML生成工具,MYSQL数据库的生成配置文件已经做好。
高级Hibernate4开发技术:ORM思想,hibernate介绍,hibernate.cfg.xml配置,hbm.xml映射文件详解,主键生成策略使用,PO对象状态及状态的转换分析、一级缓存,Hibernate数据检索技术,Hibernate高级映射技术,...
Hibernate开发租房系统终极版(可运行 附数据库脚本) 最近看了CSDN上几个Hibernate开发的租房系统 不是版本太老就是不能运行 闹心了一星期 自己终于成功运行 另附上Oracle开发脚本 注意:一 MyEclipse8的可直接...
Hibernate原理与配置快速入门 博文链接:https://linde13652.iteye.com/blog/162777