hibernate的核心类和配置
-
Configuration类
-
加载核心配置文件hibernate.cfg.xml
-
管理关系配置
- SessionFactory接口
-
可以缓存sql和数据(session级缓存)
-
重要级的类,一个数据库对应一个SessionFactory
-
获取session(可以通过openSession()和getCurrentSession()方法获取)
openSession()与getCurrentSession()区别
-
openSession是开启一个新的session
-
getCurrentSession是获取和当前线程绑定的一个session,换言之,在同一个线程中,获取的线程是同一个session,hashcode值是一样的,这样有利于事务的控制,在核心文件hibernate.cfg.xml中配置,配置如下
<property name="current_session_context_class">thread</property>
-
选择使用原则
-
如果在同一个线程中,保证使用一个session,则使用getCurrentSession
-
如果在同一个线程中,保证使用不同的session,则使用openSession
-
通过getCurrentSession获取的session在事务提交后,会自动关闭(不要再去手动关闭,否则会报session已关闭异常);通过openSession获取的session则需要手动去关闭
-
如果通过getCurrentSession获取的session查询操作,则需要事务提交
本地事务:针对一个数据库的事务
全局事务(jta):跨数据库的事务(例如转账,工行到建行,有两个数据库)
- Session接口
1 Session一个实例代表与数据库的一次操作(当然一次操作可以是crud组合)
2 Session实例通过SessionFactory获取,用完需要关闭
3 Session是线程不同步的,因此要保证在同一个session中,可以使用getCurrentSession()
4 Session可以看做是持久化管理器,它是与持久化操作相关的接口
-
get()和load()方法区别
-
get()查询直接返回实体类,如果查不到数据则返回null;load()如果没有返回实体类,就会抛出org.hibernate.ObjectNotFoundException
-
使用get()先到缓存(session缓存/二级缓存)查询数据,如果没有数据,立即向数据库发送select请求;使用load()先到缓存(session缓存/二级缓存)查询数据,返回的是一个代理对象,如果没有真实使用到对象,就没有真正向数据库发送select请求,这是懒加载机制(lazy)
-
可以通过关系配置文件修改懒加载:
<class name="com.bobo.domain.User" lazy="false" table="user">
-
如何选择使用get()或者load()?
如果确定数据库有具体某条数据,使用load();如果不确定,则使用get()(这样使用效率高)
- Transaction类,事务类
-
事务开始beginTransaction,提交submit,回滚rollback等方法
-
必须有事务提交,才可以更新数据到数据库
- 核心配置文件hibernate.cfg.xml
-
配置对应的数据库信息:数据库连接,用户名,密码,方言等
-
加载数据库驱动
-
指定加载映射关系配置文件
- 类与数据库表的关系配置
文件命名规则:一般是类名.hbm.xml
-
表名和字段名都要对应上类名和属性名
-
主键的生成策略
相关推荐
`hibernate.properties`是Hibernate的核心配置文件,用于设定与数据库连接、缓存策略、事务管理等相关的重要参数。下面我们将详细探讨这个配置文件中的关键知识点。 1. **数据库连接配置** - `hibernate....
**核心配置要点** 1. **Spring配置**:设置数据源,创建SessionFactory Bean,配置事务管理器。 2. **Struts2配置**:启用Spring插件,配置Action类为Spring管理的bean。 3. **Hibernate配置**:配置数据库连接信息...
3. **SessionFactory**:SessionFactory是Hibernate的核心组件,它是线程安全的,负责创建Session对象。Session是与数据库交互的入口点,提供了持久化对象的实例化、查询、更新和删除等功能。 4. **Transaction管理...
它是Hibernate的核心组件,通过配置文件创建: ```java Configuration config = new Configuration().configure(); ServiceRegistry serviceRegistry = new StandardServiceRegistryBuilder().applySettings...
"Hibernate核心接口" Hibernate 是一种流行的 Java 持久化框架,它提供了多种核心接口来实现数据的持久化操作。这些核心接口是 Hibernate 的基础组件,任何 Hibernate 应用程序都需要使用它们。下面将详细介绍这五...
Hibernate 的配置文件是其核心组件之一,用于定义 Hibernate 的运行期参数。下面我们将详细介绍 Hibernate 配置文件的结构和内容。 一、hibernate.cfg.xml 文件 hibernate.cfg.xml 文件是 Hibernate 的基本配置...
《Hibernate核心类库详解》 Hibernate,作为Java领域中的一款著名对象关系映射(ORM)框架,极大地简化了数据库操作,使得开发者可以更加专注于业务逻辑而不是底层数据存储。本篇文章将详细探讨`hibernate-release-...
【hibernate核心技术】主要涉及的是Java开发中的两个重要框架:Struts和Hibernate。这两个框架在企业级应用开发中有着广泛的应用,它们分别是MVC(Model-View-Controller)架构模式中的控制器和持久层解决方案。 ...
Hibernate核心类和接口是Hibernate框架的核心组件,负责将Java对象与数据库表进行映射。hibernate.properties文件、hibernate.cfg.xml文件和*.hbm.xml文件是Hibernate的核心配置文件,用于配置Hibernate的运行环境和...
SessionFactory是Hibernate的核心组件,负责实例化Session对象。配置如下: ```xml <!-- 其他属性配置 --> ``` 4. 映射文件引用: 持久化类的映射信息通常存储在`.hbm.xml`文件中。在配置文件中,我们需要...
10. **配置和映射文件**: Hibernate的配置文件(hibernate.cfg.xml)包含了数据库连接信息、缓存设置等。实体的映射文件(*.hbm.xml)或者注解定义了对象与数据库表的对应关系。 以上就是Hibernate核心开发接口的...
本教程将详细讲解如何在Java项目中配置和使用Hibernate,包括在普通Java工程和Maven工程中的配置实例。 首先,我们需要了解Hibernate的核心概念。Hibernate是一个开源的ORM框架,它可以将Java类与数据库表进行映射...
Hibernate核心类和接口 Hibernate的核心类和接口一共有6个,分别为:Session、SessionFactory、Transaction、Query、Criteria和Configuration。这些核心类和接口在任何开发中都会用到。通过这些接口,不仅可以对...
1. hibernate.cfg.xml:这是Hibernate的核心配置文件,用于定义数据源、持久化类、SessionFactory等相关设置。例如,你需要在其中指定数据库连接的URL、用户名、密码,以及JDBC驱动等信息。例如: ```xml <hibernate...
通过运行这个示例,你可以理解并实践上述配置和操作步骤。 总结,Hibernate的基本配置涉及数据库连接信息设置、实体类的定义、以及SessionFactory的创建。理解这些核心概念后,你就可以开始利用Hibernate的强大功能...
6. **SessionFactory配置**:SessionFactory是Hibernate的核心组件,负责创建和管理Session对象。可以设置`current_session_context_class`属性来选择Session的上下文。例如: ```xml <!-- Other properties -->...
`SessionFactory`是Hibernate的核心组件,负责创建`Session`实例。配置文件中的`<session-factory>`元素包含了所有相关配置属性。 **4. Caching** Hibernate支持第二级缓存,可以提高性能。`<cache>`元素用于配置...
2. 配置Servlet容器:在web.xml文件中配置DispatcherServlet,它是SpringMVC的核心组件。 3. 创建SpringMVC配置文件:定义处理器映射器、视图解析器、拦截器等。 4. 编写Controller:实现请求处理逻辑,使用@...