`
TriEyes
  • 浏览: 11055 次
  • 性别: Icon_minigender_1
  • 来自: 北京
最近访客 更多访客>>
社区版块
存档分类
最新评论

Learning Hibernate step by step -- 02 Hibernate核心类

阅读更多
在进行后面的学习之前,先了解一下Hibernate经常用到几个核心类:Configuration、SessionFactory和Session。
1. Configuration
Configuration类负责对Hibernate进行初始化配置并对他进行启动。
    Configuration cfg = new Configuration();
    cfg.configure();

执行上述代码,Hibernate会在当前CLASSPATH中搜索配置文件hibernate.cfg.xml,将配置信息初始相应的对象,并将这些对象保存到内存中共后续程序调用。如果想要深入了解初始化配置做了哪些工作,可以对源码进行跟踪。如果我们不想使用默认的路径和文件,还可以自己制定一个路径和配置文件,Hibernate给我们提供了其他三种实现方法:
    public Configuration configure(String resource) throws HibernateException;
    public Configuration configure(URL url) throws HibernateException;
    public Configuration configure(File configFile) throws HibernateException;

2. SessionFactory
SessionFactory使用了工厂设计模式,当需要Session对象时,可以从工厂中获取。SessionFactory不是轻量级的,它是线程安全的,目的是能让他在整个应用中共享。创建SessionFactory实例非常耗资源,一个项目通常只需要一个SessionFactory实例就够了,但是当项目中需要操作多个不同的数据库是,则需要为每个数据库指定一个SessionFactory。SessionFactory在Hibernate中实际起到了一个缓冲的作用,它可以缓冲Hibernate生成的SQL语句和其他一些映射数据,还缓冲了一些可以重复利用的数据。可以通过以下代码创建一个工厂实例。
    SessionFactory sessionFactory = cfg.buildSessionFactory();

3. Session
对于开发人员来说,Session可以说是最重要的一个类,它是持久层操作的基础。它的作用相当于JDBC中的Connection。Session是轻量级的类,创建和销毁它都不会占用太多资源。Session实例可以通过SessionFactory获取,在完成所有工作之后还需要将它关闭。Session是不是线程安全的,因此每个Session应该只在一个线程中使用。
    Session session = sessionFactory.openSession();
    ...
    session.close();

4. Session 核心API
Session提供了大量的交互数据库的方法,通过save、update、delete、flush等基本操作完成持久化操作,使用方法请参考以下文档:http://ajava.org/online/hibernate3api/org/hibernate/Session.html
分享到:
评论

相关推荐

Global site tag (gtag.js) - Google Analytics