1.<!-- 配置显示hibernate生成的 sql ,特别说明,在开发阶段设为true利于调试,在使用项目则设为false-->
<property name="show_sql
">true</property>
2.SessionFactory(会话工厂)
可以缓存
sql
语句和数据
(
称为
session
级缓存
)!!
这是一个重量级的类,因此要保证在一个应用程序中只能有一个
3.
对
hibernate
而言,要求程序员,在进行
增加,删除,修改的时候使用事务提交
4.
pojo
类是和一张表对应
,一般我们放在
com.xxx.domain
下,pojo
需要一个主键属性
(
用于标示一个
pojo
对象
)
,除了主键属性外,它应当还有其属性,属性的访问权限是
private
,要提供
set /get
方法
,它应当有一个无参的构造方法
(hibernate
反射
)
,pojo
类其实就是
javabean
5.hibernate开发的三种方式中的:
编写domain object + 映射文件 ------> 创建出对应的数据库,
这里我们说明如果要自动的创建出对应的数据库,需要做配置(hibernate.cfg.xml).
<property name="hbm2ddl.auto
">create</property>
这里有四个配置值: create , update , create-drop, validate
create : 当我们的应用程序加载hibernate.cfg.xml [ new Configuration().config(); ]就会根据映射文件,创建出数据库, 每次都会重新创建, 原来表中的数据就没有!!!
update: 如果数据库中没有该表,则创建,如果有表,则看有没有变化,如果有变化,则更新.
create-drop: 在显示关闭 sessionFactory时,将drop掉数据库的schema
validate: 相当于每次插入数据之前都会验证数据库中的表结构和hbm文件的结构是否一致
在开发测试中,我们配置哪个都可以测试,但是如果项目发布后,最好自己配置一次,让对应的数据库生成,完后取消配置,
6.通过SessionFactory 获取 Session的两个方法 openSession() 和 getCurrentSession()
;
openSession() 是获取一个新的session
getCurrentSession() 获取和当前线程绑定的session,换言之,在同一个线程中,我们获取的session是同一session,这样可以利于事务控制
如果希望使用 getCurrentSession 需要配置 hibernate.cfg.xml
中配置:
<property name="current_session_context_class">thread</property>
注:
如果需要在同一线程中,保证使用同一个Session则,使用getCurrentSession()
如果在一个线程中,需要使用不同的Session,则使用opentSession()
通过 getCurrentSession() 获取的session在事务提交后,会自动关闭,通过openSession()获取的session则必须手动关闭
如果是通过getCurrentSession() 获取 sesssion ,进行查询需要事务提交.
7.本地事务(JDBC事务):针对一个数据库的事务
<property name="current_session_context_class">thread</property>
全局事务(jta事务):跨数据库的事务
<property name="current_session_context_class">jta</property>
8.Session接口
的主要功能和作用是:
Session一个实例代表与数据库的一次操作(当然一次操作可以是crud组合)
Session实例通过SessionFactory获取,用完需要关闭。
Session是线程不同步的(不安全),因此要保证在同一线程中使用,可以用getCurrentSession()。
Session可以看做是持久化管理器,它是与持久化操作相关的接口
Configuration cf=new Configuration().configure();
SessionFactory sf=cf.buildSessionFactory();
Session s=sf.getCurrentSession();
//或者是: Session s=sf.openSession();
分享到:
相关推荐
### hibernate 事务管理注意事项 在使用Hibernate框架进行数据库操作时,事务管理是确保数据一致性和安全性的重要环节。本文将围绕“hibernate 事务管理注意事项”这一主题展开讨论,通过对给定文件中的标题、描述...
5. 注意事项 - 在编写HQL级联查询时,需要理解级联操作的类型,如`save-update`、`fetch`、`all-delete-orphan`等,它们会影响对象的持久化行为。 - 考虑性能影响,过多的级联查询可能导致大量的数据库交互,可能...
《Hibernate二级缓存:JBoss Caching配置与注意事项详解》 在Java的持久化框架Hibernate中,二级缓存是提高应用程序性能的重要手段。它能够存储已经加载过的对象,避免重复查询数据库,从而显著减少数据库访问次数...
- **注意事项**:`Session` 不是线程安全的,多个线程共享一个 `Session` 可能会导致数据混乱。可以使用 `ThreadLocal` 变量来解决这个问题,确保每个线程都有自己的 `Session` 实例。 #### 三、使用 Hibernate 的...
以下是对SSH2框架搭建流程及注意事项的详细说明: 1. **创建新工程** 在MyEclipse中创建新工程时,如果涉及到泛型如`List<xxx>`,需要确保工程的Java版本为Java EE5.0或以上,因为泛型是Java 5引入的新特性。 2. ...
以下是在NetBeans下安装Hibernate的详细步骤和注意事项: 一、准备工作 在开始安装之前,确保你的系统已经安装了最新版本的NetBeans IDE,并且是支持Java EE或者Java Web开发的版本。因为Hibernate主要用于处理与...
11. **最佳实践**:分享了在实际开发中使用Hibernate的一些最佳实践和注意事项,帮助开发者避免常见问题。 这个文档是Hibernate开发者的重要参考资料,无论是初学者还是有经验的开发者,都能从中获取到实用的信息和...
### 注意事项 - **版本匹配**:确保下载的 Hibernate Tools 插件与你的 Eclipse 版本兼容,否则可能无法正常安装或运行。 - **社区共享**:如果发现更高效或更方便的配置方法,鼓励分享以促进开发者之间的交流。 - ...
【压缩包子文件的文件名称列表】中提到的"注意.txt"可能包含了使用和运行该项目的注意事项,例如环境配置、依赖库的安装、运行步骤等。而"hibernate"可能是一个文件夹,里面包含了Hibernate的配置文件、实体类、DAO...
11. **性能优化注意事项**: 在实际应用中,应结合业务场景调整批处理大小,过大可能导致内存溢出,过小则可能无法充分利用数据库的批处理功能。 12. **监控与调优**: 使用数据库日志、监控工具(如JProfiler)或...
六、注意事项 虽然Middlegen能自动生成大部分配置,但并非所有情况都能完美覆盖。例如,复杂的关联关系或特殊的数据库类型可能需要开发者手动调整生成的元数据文件。此外,随着JPA(Java Persistence API)和Spring...
3. 异步操作和多线程:在并发环境中使用 NHibernate 的注意事项和最佳实践。 4. 分布式缓存:使用第三方缓存服务(如 Memcached 或 Redis)与 NHibernate 集成以提高应用性能。 5. 扩展 NHibernate:如何自定义拦截...
9. 注意事项与最佳实践: 提供在使用Hibernate过程中可能遇到的问题和解决方法,以及提高开发效率和代码质量的最佳实践。 10. Hibernate与Spring整合: Hibernate常与Spring框架结合使用,Spring的声明式事务管理...
6. **关联映射**:Hibernate支持一对一、一对多、多对一、多对多等各种关联关系的映射,手册会详细讲述如何配置这些关联,以及在操作关联对象时的注意事项。 7. **缓存机制**:为了提高性能,Hibernate提供了第一级...
同时,项目中可能包含了一些常见的注意事项和陷阱,例如数据类型转换问题、空指针异常、事务处理不当等,这些都是实际开发中需要注意的地方。通过这个项目,你不仅能学会如何使用Hibernate,还能提升解决实际问题的...
4. `README.md`或类似的文档:解释如何运行示例,以及可能的注意事项。 在实际应用中,还需要理解JDBC(Java Database Connectivity)的基础知识,因为Hibernate是在JDBC之上建立的。此外,了解SQL语言也是必要的,...