- 浏览: 822256 次
- 性别:
- 来自: 深圳
文章分类
- 全部博客 (488)
- struts1 (4)
- spring (13)
- extjs (36)
- mysql (3)
- sqlserver (2)
- oracle (37)
- 杂谈 (11)
- 面试相关 (35)
- Java基础知识总结 (5)
- Java重要知识点 线程和io流知识点 (6)
- 服务器相关 (1)
- 生活 (1)
- jsp (7)
- servlet (2)
- junit (3)
- struts2 (9)
- 开发必备 (4)
- 使用开发工具总结的知识 (4)
- ibatis (12)
- ajax (2)
- dwr (2)
- jquery (1)
- 设计模式 (4)
- Lucene的学习 (5)
- 经验总结 (19)
- mysql全文搜索相关 (7)
- hibernate (33)
- Sphinx (1)
- log4j的总结 (1)
- 敏捷开发 (9)
- 持续集成 (15)
- UML使用总结 (1)
- Scrum (1)
- OO(面向对象编程) (1)
- struts1和struts2总结 (1)
- 数据库加密 (1)
- 多线程和Socket编程 (6)
- PowerDesigner (2)
- 权限相关 (1)
- ant应用总结 (4)
- 面试必知知识点总结 (6)
- io流与nio流总结 面试相关 (1)
- 敏捷管理工具的使用 (7)
- hsqldb相关 (1)
- svn源码相关 (2)
- debug调试技巧总结 (1)
- hibernate和ibatis对比相关 (6)
- eclipse mylyn 插件的使用总结 (2)
- fisheye使用总结 (2)
- java泛型总结 (1)
- ssh整合总结 (10)
- SpringSide的学习总结 (1)
- JPA学习总结 (2)
- RoR 总结 (2)
- 模型驱动 总结 (1)
- Oracle SQL优化技巧 (4)
- 数据库相关资料 (1)
- oracle练习相关 (4)
- PowerDesigner 使用总结 (2)
- Struts实现国际化相关 (2)
- 权限框架 Spring Security (1)
- freemarker使用总结 (1)
- jsp servlet总结相关 (3)
- Java NIO总结 (1)
- 自己学习必须 (3)
- 蝴蝶容器相关 (2)
- eclipse插件的使用 (1)
- myeclipse的使用 (1)
- flex相关 (1)
- javaeye重生后总结的知识点 (2)
- 公司学习总结 (3)
- JAXB 相关 (1)
- ECSide (1)
- EdoJs 企业ajax框架 (1)
- RSA加密算法 (1)
- jbpm相关 (1)
- JMF原理 (1)
- MyEclipse使用总结 (1)
- Funsion Charts 相关总结 (3)
- 常用知识2011 (2)
- Flex与Java整合 (1)
- IBM WebSphere相关 (1)
- jQuery使用技巧 (2)
- 2011年面试相关知识点总结 (2)
- sqlserver开发相关 (8)
- eclipse 打jar相关 (2)
- Oracle/Mysql/SqlServer比较 (1)
- WebService Axis1.4开发相关 (4)
- 进制数的转换 总结 (1)
- WebService Axis2.0开发相关 (0)
- iteye Struts2 Spring Hibernate整合相关 (3)
- iteye osgi资料相关总结 (1)
- iteye ifos相关相关 (1)
- iteye 国际化相关 (1)
- iteye Hibernate缓存机制 (4)
- iteye Struts2 总结 (1)
- iteye Struts标签总结 (0)
- iteye web配置文件大全 (6)
- iteye Efs 框架总结 (1)
- iteye sql优化 (2)
- iteye 大数据量高并发的数据库优化 (1)
- iteye 开发相关 (1)
- iteye s1sh 和 s2sh整合中的问题以及解决 (1)
- iteye s1sh整合实例 (1)
- iteye s2sh整合实例 (1)
- iteye 面试相关 基础篇 (1)
- iteye Android相关 (1)
- iteye 面试相关 Web篇 (1)
- iteye Sql Server相关 (0)
- iteye struts1与struts2比较 (1)
- iteye jquery 和Struts2 (0)
- iteye struts2与其他插件整合 (0)
- iteye jquery 开发相关 (1)
- iteye eclipse结合spket(Ext,Jquery)开发相关 (0)
- iteye myeclipse 使用技巧相关 (0)
- iteye Memcached 缓存系统相关 (0)
- iteye 常用软件相关 (0)
- iteye 最新技术预览 AjaxSwing (0)
- iteye struts上传下载相关 (0)
- iteye 新技术相关 (0)
- test (0)
- iteye 开发Java游戏相关 (0)
- iteye Java反编译 (0)
- iteye XML解析相关 (0)
- iteye 压缩ZIP相关 (0)
- iteye 面试相关 (0)
- iteye Android开发相关 (4)
- csdn (0)
- e-inoc (0)
- iteye http错误码对应说明 (0)
- iteye 面试扩展知识点 (0)
- iteye oracle面试相关 存储过程,触发器,游标等 (0)
- iteye english study (0)
- iteye starflow工作流引擎 (0)
- iteye IBM WebSphere Application Server Toolkit使用相关 (0)
- iteye spring3 (0)
- iteye mybatis (0)
- iteye js技巧总结 (0)
- iteye SEO优化相关 (2)
- iteye QUI网页界面集成框架 (1)
- iteye AjaxAnywhere (1)
- iteye Nutz相关 (1)
- iteye ibatis技巧 (0)
- iteye dwz (0)
- 128个ajax/javascript框架 (0)
- iteye 2012 Java Swing教程 (1)
- iteye 码头集装箱相关 (1)
- iteye swing (2)
- 兼职工作 (0)
- 2012 新总结的面试相关知识点 常用知识点 (1)
- 淘宝网店相关 (0)
- oracle 常用函数 2012新总结 (1)
- 我的时尚潮流屋 (0)
- 2012 年 面试新总结知识 (1)
- 技巧 (1)
- 2013总结 (1)
- 2015工作相关 (3)
- springmvc (5)
- EasyPR-Java (1)
- java (2)
- editplus 4.0 注册码 (1)
- android (1)
- oracle连接数据库相关 (1)
- 编程资料总结 (2)
- 20160808 (1)
- visio 2013 (1)
最新评论
-
drew926:
泛型的类型参数可以有多个?这是java哪个版本支持的?
java泛型总结 -
listenan:
赞!非常感谢。
Scrum总结 -
cwscwj:
写的很深刻,谢谢,看了一遍,过段时间打算再看一遍。
Scrum总结 -
hwedwin:
w
Struts 2中的OGNL\EL的使用总结 -
lanni2460:
不错 很好 支持……
sqlserver三个驱动包下载
一、 基础知识
① Hibernate是对象/关系映射(Object/Relation Mapping)的解决方案。
② Hibernate架构
● POJO类
● hibernate.cfg.xml
● *.hbm.xml
● Hibernate应用
二、 几个重要的类
● Configuration类 (负责管理Hibernate的配置信息)
当创建SessionFactory时,Configuration实例可以指定使用哪一个映射文挡。应用程序通常只是创建一个Configuration实例,并通过它创建一个SessionFactory实例。
● SessionFactory类 (负责创建Session实例)
它是线程安全的,可以被多线程调用以取得Session,而且构造SessionFactory很消耗资源,所以多数情况下一个应用中只初始化一个SessionFactory,为不同的线程提供Session。
● Session类
Session是Hibernate运作的中心,对象的生命周期、事务的管理、数据库的存取都与Session息息相关。Session不是线程安全的,多个执行线程共享一个Session,将会发生数据共享而发生混乱问题。为了解决此问题,可以采用ThreadLocal变量,使用它可以有效隔离执行所使用的数据,也就避开了Session的多线程之间的数据共享问题。
如何调用hibernate API?
1、创建Configuration对象。(解析配置文件)
Configuration config = new Configuration();
2、通过Configuration创建Session Factory(线程安全的重量级组件)。
Config = config.configure(); //configure()方法会在CLASSPATH下寻找hibernate.cfg.xml
SessionFactory = config.buildSessionFactory();
3、通过SessionFactory创建Session会话对象。
Session session = sessionFactory.openSession();
4、通过Session取得事务对象。
Transaction trans = session.beginTransaction();
5、通过session与数据库进行会话。
session.save(object o); //增
session.delete(object o); //删
session.update(object o); //改
session.get (Class clazz, Serializable id); //根据Id查找对象
session.createQuery(String sql); //自己拼HQL语言查找对象返回一个Query对象。
6、提交操作,结束事务。
Trans.commit();
7、关闭Session
session.close();
注:第一步和第二步一般放在静态初始化代码块中执行。
三、Hibernate中自带ID的generator的含义:
1、identity:用于MySql数据库。特点:递增
<id name="id" column="id">
<generator class="identity"/>
</id>
注:对于MySql数据库使用递增序列时需要在建表时对主键指定为auto_increment属性。
2、sequence:用于Oracle数据库
<id name="id" column="id">
<generator class="sequence">
<param name="sequence">序列名</param>
</generator>
</id>
3、native:跨数据库时使用,由底层方言产生。
Default.sequence为hibernate_sequence
<id name="id" column="id">
<generator class="native"/>
</id>
注:使用native时Hibernate默认会去查找Oracle中的hibernate_sequence序列。
如果Oracle中没有该序列,连Oracle数据库时会报错。
4、hilo:通过高低位合成id,先建表hi_value,再建列next_value。必须要
有初始值。
<id name="id" column="id">
<generator class="hilo">
<param name="table">high_val</param>
<param name="column">nextval</param>
<param name="max_lo">5</param>
</generator>
</id>
5、sequencehilo:同过高低位合成id,建一个sequence序列,不用建表。
<id name="id" column="id">
<generator class="hilo">
<param name="sequence">high_val_seq</param>
<param name="max_lo">5</param>
</generator>
</id>
6、assigned:用户自定义id;
<id name="id" column="id">
<generator class="assigned"/>
</id>
7、foreign:用于一对一关系共享主健时,两id值一样。
四、Hibernate类关系的处理:
1、One―to―One关系在数据库中如何体现,在JavaBean中如何体现,在Hibernate中如何映射one-to-one关系。
1、数据库中:一个表的外健对应另一个表的主健,外健要加上Unique约束。或者是两个表共享一个主健。
2、javaBean中:在JavaBean中增加一个属性,即另外一个对象的引用,可以单向也可以双向。
3、在hibernate中:
主健映射:都是one-to-one要用foreign生成策略。
外健映射:主表中用one-to-one,副表通过property-ref many-to-one
① Hibernate是对象/关系映射(Object/Relation Mapping)的解决方案。
② Hibernate架构
● POJO类
● hibernate.cfg.xml
● *.hbm.xml
● Hibernate应用
二、 几个重要的类
● Configuration类 (负责管理Hibernate的配置信息)
当创建SessionFactory时,Configuration实例可以指定使用哪一个映射文挡。应用程序通常只是创建一个Configuration实例,并通过它创建一个SessionFactory实例。
● SessionFactory类 (负责创建Session实例)
它是线程安全的,可以被多线程调用以取得Session,而且构造SessionFactory很消耗资源,所以多数情况下一个应用中只初始化一个SessionFactory,为不同的线程提供Session。
● Session类
Session是Hibernate运作的中心,对象的生命周期、事务的管理、数据库的存取都与Session息息相关。Session不是线程安全的,多个执行线程共享一个Session,将会发生数据共享而发生混乱问题。为了解决此问题,可以采用ThreadLocal变量,使用它可以有效隔离执行所使用的数据,也就避开了Session的多线程之间的数据共享问题。
如何调用hibernate API?
1、创建Configuration对象。(解析配置文件)
Configuration config = new Configuration();
2、通过Configuration创建Session Factory(线程安全的重量级组件)。
Config = config.configure(); //configure()方法会在CLASSPATH下寻找hibernate.cfg.xml
SessionFactory = config.buildSessionFactory();
3、通过SessionFactory创建Session会话对象。
Session session = sessionFactory.openSession();
4、通过Session取得事务对象。
Transaction trans = session.beginTransaction();
5、通过session与数据库进行会话。
session.save(object o); //增
session.delete(object o); //删
session.update(object o); //改
session.get (Class clazz, Serializable id); //根据Id查找对象
session.createQuery(String sql); //自己拼HQL语言查找对象返回一个Query对象。
6、提交操作,结束事务。
Trans.commit();
7、关闭Session
session.close();
注:第一步和第二步一般放在静态初始化代码块中执行。
三、Hibernate中自带ID的generator的含义:
1、identity:用于MySql数据库。特点:递增
<id name="id" column="id">
<generator class="identity"/>
</id>
注:对于MySql数据库使用递增序列时需要在建表时对主键指定为auto_increment属性。
2、sequence:用于Oracle数据库
<id name="id" column="id">
<generator class="sequence">
<param name="sequence">序列名</param>
</generator>
</id>
3、native:跨数据库时使用,由底层方言产生。
Default.sequence为hibernate_sequence
<id name="id" column="id">
<generator class="native"/>
</id>
注:使用native时Hibernate默认会去查找Oracle中的hibernate_sequence序列。
如果Oracle中没有该序列,连Oracle数据库时会报错。
4、hilo:通过高低位合成id,先建表hi_value,再建列next_value。必须要
有初始值。
<id name="id" column="id">
<generator class="hilo">
<param name="table">high_val</param>
<param name="column">nextval</param>
<param name="max_lo">5</param>
</generator>
</id>
5、sequencehilo:同过高低位合成id,建一个sequence序列,不用建表。
<id name="id" column="id">
<generator class="hilo">
<param name="sequence">high_val_seq</param>
<param name="max_lo">5</param>
</generator>
</id>
6、assigned:用户自定义id;
<id name="id" column="id">
<generator class="assigned"/>
</id>
7、foreign:用于一对一关系共享主健时,两id值一样。
四、Hibernate类关系的处理:
1、One―to―One关系在数据库中如何体现,在JavaBean中如何体现,在Hibernate中如何映射one-to-one关系。
1、数据库中:一个表的外健对应另一个表的主健,外健要加上Unique约束。或者是两个表共享一个主健。
2、javaBean中:在JavaBean中增加一个属性,即另外一个对象的引用,可以单向也可以双向。
3、在hibernate中:
主健映射:都是one-to-one要用foreign生成策略。
外健映射:主表中用one-to-one,副表通过property-ref many-to-one
发表评论
-
Hibernate工作原理
2010-10-03 10:34 4093Hibernate工作原理 图 ... -
Hibernate基础
2010-09-19 09:43 1133Hibernate基础 Part 1 1. ... -
hibernate一对一映射外键关联
2010-09-17 11:24 1309hibernate一对一映射外键关联 一对一外键关联 外键关 ... -
在Hibernate中使用JDBC事务
2010-09-16 14:21 1281在Hibernate中使用JDBC事务 Hibernate ... -
hibernate事务,一级缓存,二级缓存
2010-09-16 12:34 1156hibernate主要从以下几个 ... -
Hibernate的五个核心接口介绍
2010-09-16 12:14 1003所有的Hibernate应用中都会访问Hibernate的 ... -
Hibernate缓存配置/批量处理
2010-09-16 12:01 1186Hibernate缓存配置/批量处 ... -
hibernate知识点总结
2010-09-16 08:48 1282hibernate知识点总结 1.hibernate的优缺点 ... -
项目缓存方案总结
2010-09-16 08:42 841项目缓存方案总结 一 ... -
hibernate缓存总结
2010-09-16 08:30 965hibernate缓存总结: 缓存是位于应用程序与 ... -
Hibernate中一级缓存、二级缓存及查询缓存的技术性总结
2010-09-15 22:54 867一、 一级缓存 1. 一级缓存只缓存整个对象 ... -
Hiberante3 一级缓存总结
2010-09-15 22:53 438Hiberante3 一级缓存总结 1. ... -
Hibernate中的缓存总结
2010-09-15 22:51 982Hibernate中的缓存总结 Hibernate ... -
hibernate缓存相关
2010-09-15 22:49 807hibernate缓存相关 hibernat ... -
hibernate技术面试相关
2010-09-13 20:51 1147Hibernate 中数据表映射关 ... -
hibernate 相关面试题
2010-09-13 20:50 10081.在数据库中条件查询 ... -
hibernate get()与load()的区别
2010-09-13 15:36 818hibernate get()与load()的区别 s ... -
Hibernate持久化对象的生命周期
2010-09-13 11:06 1052持久化对象的状态: ... -
Hibernate中持久化类实例的三种状态
2010-09-13 10:59 2126在Hibernate中持久化类实 ... -
全面介绍Hibernate持久化类
2010-09-13 10:55 1201Hibernate持久化类使用的是JavaBean的风格,为要 ...
相关推荐
SSH之Hibernate总结 SSH(Struts、Spring、Hibernate)是Java Web开发中常见的三大框架,而Hibernate作为ORM(对象关系映射)框架,是连接Java应用程序与数据库的关键组件。本总结将围绕Hibernate的核心概念、配置...
本资源包含的"hibernate总结练习源码"提供了对Hibernate ORM框架实际应用的实例,有助于深入理解和掌握其核心概念与功能。 1. **对象关系映射(ORM)**:Hibernate 提供了一种机制,将数据库中的表映射为Java类,表...
《Hibernate总结(三)》 在本篇关于Hibernate的总结中,我们将深入探讨这个流行的Java对象关系映射(ORM)框架的关键概念和技术细节。Hibernate作为一款强大的工具,它极大地简化了Java开发人员处理数据库操作的工作...
标题:hibernate总结 描述:此文档是个人在使用Hibernate框架进行数据持久化操作时的经验积累和技巧分享。文档全面覆盖了Hibernate的各种配置方法、数据映射技术、集合类映射、对象关系映射(ORM)基础以及与J2EE...
### Hibernate总结 #### 一、Hibernate简介 Hibernate是一种在Java环境下使用的对象关系映射(ORM)框架,它能够将Java类映射到数据库表,并管理Java应用中的对象关系与SQL数据库之间的转换。Hibernate的主要目标...
### 学习Hibernate总结 #### 一、简介与配置 Hibernate是Java环境下一款优秀的对象关系映射(ORM)框架,它极大地简化了数据访问层(DAL)的编码工作,允许开发人员将主要精力集中在业务逻辑上而不是繁琐的SQL语句...
1. 引入Hibernate所需的JAR文件,例如在Eclipse中创建Hibernate类库。 2. 创建配置文件`hibernate.cfg.xml`,其中包含数据库连接信息、日志格式等。 3. 设计实体类,对应数据库表中的记录,并提供对应的getter和...
**总结项目实战** 在实际项目中,使用 Hibernate 可以简化数据库操作,提高开发效率。常见的应用场景包括用户管理、订单处理、商品分类等。项目实践中要注意合理设计实体关系,避免 N+1 查询问题,利用缓存优化性能...
在Java开发中,Hibernate是一个非常重要的对象关系映射(ORM)框架,它简化了数据库操作,使得开发者可以使用面向对象的方式来处理数据。本教程将深入探讨如何使用Hibernate来实现一个简单的课程管理系统,涵盖多对...
总结来说,JDBC是基础的数据库访问技术,适合进行简单的数据库操作,而Hibernate则通过提供面向对象的接口,极大地简化了数据库操作,尤其适用于复杂的业务场景。两者结合使用,可以让开发者在享受面向对象编程便利...
《Hibernate4总结文档》 Hibernate4作为一款强大的Java对象关系映射框架,简化了数据库操作,使得开发者可以更专注于业务逻辑而不是数据库层面的细节。本文将深入探讨Hibernate4的配置和使用,帮助开发者更好地理解...
总结来说,Hibernate是一个强大的ORM框架,它极大地简化了Java应用的数据库操作,提高了开发效率,并提供了高级特性如缓存、事务管理等。通过深入理解和熟练使用Hibernate,开发者可以构建更高效、更易于维护的...