-
Hibernate中的核心接口与类
-
Configuration类
-
SessionFactory类
-
Session类
-
Transaction类
-
Query接口
-
Criteria接口
2. 使用MyEclipse可视化开发Hibernate的例子(略)
3. 设置Hibernate使用Tomcat的连接池
4. Hibernate使用C3P0连接池
Hibernate中的接口与类
根据上图的结构可以得出他们的依赖关系。
-
Configuration类负责管理Hibernate的配置信息
1.Hibernate运行的底层信息:数据库的URL,用户名,用户密码,JDBC驱动类,数据库Dialect,数据库连接池等。
2.
Hibernate配置文件默认为hibernate.cfg.xml,或者hibernate.properties
3.Hibernate映射文件(*.hbm.xml)
//1. new a configuraion instance
Configuration config = new Configuration();
//2.load the configure file
config.configure();
//3.get sessioonFactory,at this stage the configratino is useless.
SessionFactory sessionFactory = config.buildSessionFactory();
1.会话工厂缓存了生成的SQL语句和一些数据
2.会话工厂在用用初始化时被创建,是一个重量级的类。通常情况下,整个应用只有唯一的一个会话工厂。
3
.使用Hibernate访问多个数据库,需要对每一个数据库使用一个会话工厂
。
4.应用程序从会话工厂里获得Session(会话)实例
//1. new a configuraion instance
Configuration config = new Configuration();
//2.load the configure file
config.configure();
//3.get sessioonFactory,at this stage the configratino is useless.
SessionFactory sessionFactory = config.buildSessionFactory();
1.Session也成为持久化管理,因为它是与持久化有关的操作接口
2.Session代表与数据库之间的一次操作。
3.Session通过SessionFactory打开,在所有的工作完成后,需要关闭。
4.会话并不是线程安全的,应该被设计为每次只能在一个线程中使用
//1. new a configuraion instance
Configuration config = new Configuration();
//2.load the configure file
config.configure();
//3.get sessioonFactory,at this stage the configratino is useless.
SessionFactory sessionFactory = config.buildSessionFactory();
//get session
Session session = sessionFactory.getCurrentSession();
save()方法
get()/load()方法
update()方法
delete()方法
1. 使用load()方法,如果没有找到记录,就会抛出违例
2.使用get()方法,如果没有找到激励,返回Null
3. 两个方法对缓存对象的读取也不同
1.Transaction从底层的事务实现中抽象出来的接口
2.可能是一个JDBC事务或一个JTA事务,这有助于保持Hibernate应用在不同类型的执行环境或容器中的可移植性
3.使用Hibernate进行操作时必须显示的调用Transaction
Session session = sessionFactory.getCurrentSession();
Transaction tx = session.beginTransaction();
......
tx.commit();
session.close();
1.使用Query类型的对象可以方便我们对数据库进行查询操作,它使用 QBC,QBE,HQL或者原生SQL(Native SQL)对数据执行查询操作。
Configuration config = new Configuration().configure();
SessionFactory sessionFactory = config.buildSessionFactory();
Session session = sessionFactory.getCurrentSession();
Transaction tx = session.beginTransaction();
Query query = session.createQuery("from guestbook");
List list = query.list();
tx.commit();
1.Criteria接口与Query接口非常类似,它允许我们创建并执行面向对象方式的查询。
Configurain config = new Configuraion().configure();
SessionFactory sessionFactory = config.buildSessionFactory();
Session session = sessionFactory.getCurrentSession();
Transaction tx = session.beginTransaction();
Criteria crit = session.CreateCriteria(GuestBook.class);
Criterion criterion1 = Restrictions.like("name","刘%");
crit.add(criterion1);
List list = crit.list();
tx.commit();
2. 使用MyEclipse可视化开发Hibernate的例子(略)
Exception in thread "main" org.hibernate.HibernateException: No CurrentSessionContext configured!
at org.hibernate.impl.SessionFactoryImpl.getCurrentSession(SessionFactoryImpl.java:620)
at com.crazy.HibernateTest.main(HibernateTest.java:16)
发生一下异常时,是因为CurrentSession没有配置,所以不能使用getCurrentSession来获取Session。应该使用openSession来获取session。
No CurrentSessionContext configured!
3. Hibernate设置使用Tomcat中的连接池
<Context reloadable="true">
<Resource name="jdbc/oracleds" auth="Container" type="javax.sql.DataSource" maxActive="100" maxIdle="30" maxWait="10000"
username="scott" password="tiger" driverClassName="oracle.jdbc.OracleDriver" url="jdbc:oracle:thin:@127.0.0.1:1521:ora92"/>
</Context>
这种配置是针对Web应用程序,否则不可以这样配置。
<property name="connection.datasource">java:com/env/jdbc/oracleds</property>
首先添加C3P0的jar文件。
配置内容如下:
<!-- configuration of c3p0-->
<property name="connection.provider_class">org.hibernate.connection.C3P0ConnectionProvider</property>
<property name="c3p0.max_size">10</property>
<property name="c3p0.min_size">5</property>
<property name="c3p0.timeout">10</property>
<property name="c3p0.max_statements">10</property>
一篇关于c3p0配置信息的文章 : http://msq.iteye.com/blog/60387
分享到:
相关推荐
《Hibernate 手册 第一章 Hibernate入门》 Hibernate 是一个开放源码的Java持久化框架,它为Java开发者提供了一种对象关系映射工具来管理Java应用中的关系数据。本章将带你逐步走进Hibernate的世界,了解其基本概念...
在**第六章 Hibernate核心技能**中,我们可能涉及以下知识点: - **实体类和映射文件/注解**:理解如何定义一个Java实体类来代表数据库表,并通过XML映射文件或注解来指定其与数据库表的关系,包括主键、属性映射等...
第二章 MVC模式介绍 2.1 MVC模式概述 2.1.1 MVC模式的设计思想 2.1.2 MVC模式的处理过程 2.2 Model规范 2.2.1 Model1规范 2.2.2 Model2规范 2.3 使用MVC的优劣 2.3.1 使用MVC模式的好处 2.3.2 使用MVC模式的不足之处...
“学习Hibernate的第二章”通常会涵盖以下核心主题: 1. **Hibernate环境配置**:在开始使用Hibernate之前,我们需要设置相关的环境,包括下载Hibernate库、添加依赖到项目中(对于Maven或Gradle项目)、配置...
Java Web整合开发实战--基于Struts 2+Hibernate+Spring....13章 探究Hibernate之核心接口 14章 Hibernate之项目实战 4篇 业务层框架Spring技术 15章 Spring快速上手 (百度网盘地址如果失效请联系我,我会补上的)
本资料集"Accp6.0 Y2 Hibernate1-2章上机练习和课后代码"是针对Accp6.0课程第二年(Y2)关于Hibernate框架的深入学习,提供了个人编写的代码实践案例。由于项目规模较大,被拆分为三个部分,这里主要讨论的是前两章...
第二章 MVC模式介绍 2.1 MVC模式概述 2.1.1 MVC模式的设计思想 2.1.2 MVC模式的处理过程 2.2 Model规范 2.2.1 Model1规范 2.2.2 Model2规范 2.3 使用MVC的优劣 2.3.1 使用MVC模式的好处 2.3.2 使用MVC模式的不足之处...
在本章中,我们将深入探讨J2EE应用实践教程中的第二章代码,主要涉及Java Project、Struts2和Hibernate这三个核心技术。J2EE(Java 2 Platform, Enterprise Edition)是一个用于构建企业级应用程序的平台,它提供了...
第二章 MVC模式介绍 2.1 MVC模式概述 2.1.1 MVC模式的设计思想 2.1.2 MVC模式的处理过程 2.2 Model规范 2.2.1 Model1规范 2.2.2 Model2规范 2.3 使用MVC的优劣 2.3.1 使用MVC模式的好处 2.3.2 使用MVC模式的不足之处...
二、Hibernate的核心概念 1. 实体(Entity):在Hibernate中,实体代表数据库表的一行记录,通常是一个Java类,通过@Entity注解标记。 2. 对象关系映射(ORM):ORM是Hibernate的核心功能,它将Java对象转换为SQL...
4. **缓存机制**:Hibernate提供了第一级缓存和第二级缓存,提高性能。 **Struts2与Hibernate3整合** 整合Struts2和Hibernate3的主要目标是将用户的请求转发到Action,由Action调用Service层的业务逻辑,Service层...
2.4.1 Hibernate的核心接口 2.4.2 事件处理接口 2.4.3 Hibernate映射类型接口 2.4.4 可供扩展的接口 2.5 小结 2.6 思考题 第3章 第一个Hibernate应用 3.1 创建Hibernate的配置文件 3.2 创建持久化类...
`第二章mysql.sql` 文件可能是用于配合 Hibernate 实践的 MySQL 数据库脚本,包含了创建对应表的 SQL 语句。而 `H02` 文件名可能表示课程的第二个部分,其中可能包含更多的实践示例或扩展概念。 学习 Hibernate 的...
9. 第二级缓存:了解Hibernate的缓存机制,特别是第二级缓存,它可以提高应用程序性能,减少对数据库的直接访问。 10. 事务管理:理解Hibernate的事务API,如Transaction接口,以及如何在业务逻辑中适当地管理事务...
2.4.1 Hibernate的核心接口 39 2.4.2 事件处理接口 41 2.4.3 Hibernate映射类型接口 41 2.4.4 可供扩展的接口 42 2.5 小结 43 2.6 思考题 45 第3章 第一个Hibernate应用 47 本章通过简单的helloapp应用例子,...
二、Hibernate核心概念 1. 实体(Entity):在Hibernate中,实体代表数据库中的表,通常是一个Java类,通过注解或XML配置与数据库表建立关联。 2. 映射(Mapping):对象关系映射是Hibernate的核心,通过Hibernate...
在这一章,你会学习如何在项目中集成Hibernate,设置hibernate.cfg.xml配置文件,以及怎样通过注解或XML文件定义实体类与数据库表之间的映射关系。实体类是业务对象的Java表示,而映射文件则是描述这些对象如何在...
在第二章中,作者可能会详细讲解Hibernate的核心概念,包括ORM(对象关系映射)的基本理念,以及为什么在Java应用中选择Hibernate作为持久化框架。这一章会涉及如何安装和配置Hibernate,包括设置hibernate.cfg.xml...
- **1.2 第二部分 - 关联映射** - **映射Person类**:通过Person类的映射示例,介绍了单个实体类的基本映射方式。 - **单向Set-based的关联**:解释了如何通过集合属性实现一对多或一对零或多的关系映射。 - **...