- 浏览: 173614 次
- 性别:
- 来自: 上海
文章分类
- 全部博客 (157)
- 心情故事 (2)
- SWT/JFACE/RCP (5)
- 数据库 持久层 (22)
- 程序开发的小常识 (17)
- 设计模式 (6)
- UML图 (1)
- 框架相关文章 (15)
- 消息服务 (3)
- javascript ajax jquery (12)
- servlet http 协议 (1)
- 中间件 服务器 JNDI (11)
- EJB (4)
- core JAVA jvm (17)
- 算法 算数 智力题 (5)
- 版本控制软件 (1)
- 软件下载 (15)
- quartz job (2)
- xml (2)
- 线程 (9)
- 英语专栏学习 (0)
- SWT/JFACE/RCdP (0)
- Unix (1)
- Maven (3)
- 第一段经历 (0)
- 第二段经历 (0)
- 第三段经历 (0)
- 第四段经历 (9)
- ide开发工具 (2)
- 浏览器兼容 (1)
- 技术的缺点总结 (1)
- 验证码 (1)
- 面试问题大全 (3)
- 第五段经历 (5)
- 趣味编程 (1)
最新评论
-
zhangwei8607:
哥,我来了
发表了这么多技术文章,为什么没人留言 -
aqqcat:
这个太骚了同志
proxy 的原理 -
dmwdmc:
...
9个球其中1个空心最多称2次得出空心球 -
kjmmlzq19851226:
9个球分三组为A、B、C,任意取其中两组进行第一次称重,两种情 ...
9个球其中1个空心最多称2次得出空心球 -
zhangwei8607:
:idea: 学习了
网银系统augcb申请信用卡ejb的应用
Hibernate的核心接口一共有5个,分别为:Session、SessionFactory、Transaction、Query和 Configuration。这5个核心接口在任何开发中都会用到。通过这些接口,不仅可以对持久化对象进行存取,还能够进行事务控制。下面对这五的核心接口分别加以介绍。
·Session接口:
Session接口负责执行被持久化对象的CRUD操作(CRUD的任务是完成与数据库的交流,包含了很多常见的 SQL语句。)。但需要注意的是Session对象是非线程安全的。同时,Hibernate的session不同于JSP应用中的 HttpSession。这里当使用session这个术语时,其实指的是Hibernate中的session,而以后会将HttpSesion对象称为用户session。
·SessionFactory接口:
SessionFactroy接口负责初始化Hibernate。它充当数据存储源的代理,并负责创建 Session对象。这里用到了工厂模式。需要注意的是SessionFactory并不是轻量级的,因为一般情况下,一个项目通常只需要一个 SessionFactory就够,当需要操作多个数据库时,可以为每个数据库指定一个SessionFactory。
·Configuration接口:
Configuration接口负责配置并启动Hibernate,创建SessionFactory对象。在Hibernate的启动的过程中,Configuration类的实例首先定位映射文档位置、读取配置,然后创建SessionFactory对象。
·Transaction接口:
Transaction接口负责事务相关的操作。它是可选的,开发人员也可以设计编写自己的底层事务处理代码。
·Query和Criteria接口:
Query和Criteria接口负责执行各种数据库查询。它可以使用HQL语言或SQL语句两种表达方式。
以下我自己写了个HibernaeUtil,里面就是利用Configuration 创建了SessionFactory
以下是利用SessionFactory 得到session,利用session得到transaction,
以下是Query.
·Session接口:
Session接口负责执行被持久化对象的CRUD操作(CRUD的任务是完成与数据库的交流,包含了很多常见的 SQL语句。)。但需要注意的是Session对象是非线程安全的。同时,Hibernate的session不同于JSP应用中的 HttpSession。这里当使用session这个术语时,其实指的是Hibernate中的session,而以后会将HttpSesion对象称为用户session。
·SessionFactory接口:
SessionFactroy接口负责初始化Hibernate。它充当数据存储源的代理,并负责创建 Session对象。这里用到了工厂模式。需要注意的是SessionFactory并不是轻量级的,因为一般情况下,一个项目通常只需要一个 SessionFactory就够,当需要操作多个数据库时,可以为每个数据库指定一个SessionFactory。
·Configuration接口:
Configuration接口负责配置并启动Hibernate,创建SessionFactory对象。在Hibernate的启动的过程中,Configuration类的实例首先定位映射文档位置、读取配置,然后创建SessionFactory对象。
·Transaction接口:
Transaction接口负责事务相关的操作。它是可选的,开发人员也可以设计编写自己的底层事务处理代码。
·Query和Criteria接口:
Query和Criteria接口负责执行各种数据库查询。它可以使用HQL语言或SQL语句两种表达方式。
以下我自己写了个HibernaeUtil,里面就是利用Configuration 创建了SessionFactory
import org.hibernate.Session; import org.hibernate.SessionFactory; import org.hibernate.cfg.Configuration; public class HibernateUtil { private static SessionFactory factory = null; static { try { Configuration config = new Configuration(); factory = config.configure().buildSessionFactory(); } catch (Throwable e) { System.err.println("Initial SessionFactory creation failed." + e); throw new ExceptionInInitializerError(e); } } public static Session getSession() { return factory.openSession(); } public static Session getCurrentSession() { return factory.getCurrentSession(); } }
以下是利用SessionFactory 得到session,利用session得到transaction,
import java.util.Collection; import java.util.LinkedHashSet; import org.hibernate.Query; import org.hibernate.Session; import org.hibernate.Transaction; import com.allanlxf.hibernate.association.m2m.entity.TarenaCourse; public class CourseService { public void add(TarenaCourse course) { Session session = null; Transaction trans = null; try { session = HibernateUtil.getSession(); trans = session.beginTransaction(); session.save(course); trans.commit(); } catch (RuntimeException e) { trans.rollback(); e.printStackTrace(); throw e; } finally { session.close(); } } }
以下是Query.
public TarenaCourse findById(int id) { TarenaCourse course = null; Session session = null; Transaction trans = null; try { session = HibernateUtil.getSession(); trans = session.beginTransaction(); Query query = session.createQuery("select course from TarenaCourse course left join fetch course.classes where course.id = :id"); course = (TarenaCourse) query.setInteger("id", id).uniqueResult(); trans.commit(); } catch (RuntimeException e) { trans.rollback(); e.printStackTrace(); throw e; } finally { session.close(); } return course; }
发表评论
-
oracle 重设redo log 和倒入
2014-02-21 18:27 728重设redo log: alter system set &q ... -
weblogic 整合hibernate valildation 2个问题的解决
2013-09-23 21:23 17571.java.lang.AbstractMethodError ... -
weblogic.jdbc.wrapper.Clob_oracle_sql_CLOB incompatible with oracle.sql.CLOB 解决方
2013-09-23 16:02 1429Object ocontent = resMap.get(& ... -
拦截器spring mvc exclude 和include
2013-09-12 16:02 1175引用<mvc:interceptors> ... -
mybatis 完美内嵌循环多参数传递
2013-09-05 14:05 1626column="{disp_pri_order = ... -
Spring mvc 的多表单验证错误处理
2013-08-27 18:59 936public ModelAndView index(@Mod ... -
spring mvc的缺点
2013-08-27 14:34 12421.框架没有自动处理 forward过来的BindingRes ... -
mybatis 调用存在过程
2013-08-21 13:40 1006mybatis 调用存在过程{ call proc_savea ... -
spring mvc validator
2013-08-14 17:08 1308http://haohaoxuexi.iteye.com/bl ... -
spring mybatis 事务问题解决
2013-08-10 21:00 383好几天的困惑,这个问题终于解决。 以下这行是控制spring ... -
mybatis打印sql
2013-07-31 18:55 596用log4j在控制台输出,在web.xml中配置log4j.p ... -
exist union 运用求大中小级联
2013-07-31 11:33 603所有item表中,大,中,小item. 其中大的item是W0 ... -
oracle有哪些常用的系统表
2013-07-23 15:05 1091dba_开头..... dba_users 数据库用户信 ... -
【转载】hiberate save, saveorupate等各种方法状态解释
2013-06-18 21:06 770http://www.blogjava.net/TiGERT ... -
[转载]hibernate的乐观锁
2013-06-18 08:35 656http://esffor.iteye.com/blog/ ... -
jdbc取blob读出实例
2013-06-04 10:00 862import java.io.BufferedInputStr ... -
oracle 内置函数:search DB blob 字段显示出来
2013-06-03 17:38 1007select utl_raw.cast_to_varchar2 ... -
oracle 同义词
2013-06-02 19:52 749相当于alias(别名),比如把user1.table1在us ... -
一次性插入多条数据的insert
2013-06-02 19:24 1119INSERT INTO 正式表 (CPU,PRICE) SEL ... -
select 结构执行顺序
2013-06-02 19:13 878(8)SELECT(9)DISTINCT(11) ( 1 ...
相关推荐
4. **Session工厂与Session**: Hibernate的核心接口包括SessionFactory和Session。SessionFactory是线程安全的,用于创建Session,而Session是数据库会话,用于执行CRUD操作。 5. **实体类与数据库表**: 在...
这个实例包可能是为了帮助开发者理解和学习如何在实际项目中使用Hibernate 4.0.0版本。通过分析示例代码,可以了解如何配置Hibernate,创建实体类,定义关联,编写HQL或Criteria查询,以及如何处理事务和缓存。同时...
在实际开发中,通过熟练掌握这些接口和概念,我们可以高效地利用Hibernate进行数据库操作,降低系统的耦合度,提升开发效率。通过阅读给出的源码s2sh_Hibernate03_CoreAPI,可以进一步加深对这些概念的理解和实践。
Hibernate 的核心接口分别是 Configuration、SessionFactory、Session、Transaction 和 Query。这些核心接口在任何 Hibernate 应用程序中都会用到。通过这些接口,不仅可以对持久化对象进行存取,还能够进行事务控制...
5. **SessionFactory和Session**:通过SessionFactory创建Session对象,它是与数据库交互的主要接口,用于执行查询和事务管理。 为了成功运行这个项目模板,开发者需要熟悉上述技术,并正确配置所有相关组件。这...
通过SessionFactory和Session接口,Hibernate可以进行对象持久化,将Java对象转换为数据库中的记录。 **MySQL数据库**:MySQL以其高效、稳定和易用性,成为许多Web应用的首选数据库。在本实例中,开发者需要创建...
开发者可以通过这个实例学习如何配置SpringMVC和Hibernate,理解它们之间的协作方式,以及如何编写实际的业务代码。 在这个实例中,你可以学习到以下知识点: 1. SpringMVC的配置,包括DispatcherServlet配置、视图...
Struts2、Hibernate3.3和Spring3.0是Java Web开发中著名的三大框架,它们分别负责MVC模式中的Action层、持久化层和依赖注入与业务逻辑管理。本实例将详细阐述如何将这三个框架整合在一起,实现一个完整的CRUD(创建...
通过这个小实例,初学者可以学习如何在实际项目中设置和运行SpringMVC和Hibernate。理解这两者如何协同工作,对于提升Java Web开发能力是非常有帮助的。你可以从以下几个方面进行深入学习: 1. SpringMVC的注解驱动...
本实例旨在为初学者提供一个基础的Hibernate使用教程,帮助理解其基本概念和工作流程。 首先,我们需要了解Hibernate的核心组件。Hibernate框架主要由以下部分构成: 1. **Hibernate配置文件(hibernate.cfg.xml)...
在Java的持久化框架中,Hibernate是一个非常重要的工具,它为开发者提供了方便的数据访问接口,大大简化了数据库操作。在数据库关系模型中,一对一(One-to-One)关联是一种常见的关系类型,表示两个实体之间存在...
本实例旨在介绍如何使用最新的Spring MVC 4、Spring 4和Hibernate 5来构建一个高效、灵活且可扩展的架构。 Spring MVC是Spring框架的一部分,专门用于构建Web应用程序的模型-视图-控制器(MVC)架构。它提供了强大...
在实际项目中,"spring_hibernate_2"可能代表一个包含多个文件的目录,比如配置文件(如applicationContext.xml、hibernate.cfg.xml)、实体类(User.java)、DAO接口和实现(UserDao.java、UserDaoImpl.java)、...
Struts2、Hibernate和MySQL是Java Web开发中的三大核心技术,它们共同构成了一个强大的后端开发框架。本实例将深入探讨这三个技术如何协同工作,以及如何通过JSP进行前端展示。 Struts2作为MVC(Model-View-...
5. **SessionFactory和Session**:SessionFactory是Hibernate的核心对象,负责创建Session,而Session是与数据库交互的接口,用于执行查询、保存和更新对象。 6. **CRUD操作**:学习如何使用Criteria、HQL...
5. **编写DAO(Data Access Object)层**:创建专门处理数据库操作的DAO类,这些类通常使用Hibernate的Session接口进行CRUD操作。 6. **Action与DAO交互**:在Action类中,通过调用DAO方法来实现业务逻辑,比如验证...
标题“spring与hibernate以及ibatis集成的实例和具体配置图解”表明,这个资料包主要讲解如何将这三个框架结合在一起使用,以构建一个高效、灵活的后端系统。集成这些框架可以实现数据访问层的无缝切换,同时利用...
2. **Session API**:Hibernate 的 Session 接口是数据库会话的抽象,它负责对象的持久化操作,包括保存、更新、删除和查询。 3. **HQL(Hibernate Query Language)**:这是 Hibernate 提供的一种面向对象的查询...
本实例将深入探讨Hibernate的核心概念和常用功能,帮助你更好地理解和应用Hibernate。 一、Hibernate简介 Hibernate 是一个开源的ORM框架,它通过提供对象-关系映射工具,消除了Java应用程序与关系数据库之间的转换...