A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

本帖最后由 我是楠楠 于 2017-12-26 10:25 编辑

hibernate 核心APIConfiguration
Configuration : 封装Hibernate系统配置信息的对象
  • 使用hibernate.cfg.xml加载配置:

[AppleScript] 纯文本查看 复制代码
        /**
         * Configuration().configure(); ,默认读取classpath下hibernate.cfg.xml文件 
         * Configuration().configure(“配置文件名”); 不常用  /config/ hibernate.cfg.xml  加载
         */
        Configuration conf = new Configuration().configure();


资源文件配置方式:
  • 添加配置文件(常用)

[AppleScript] 纯文本查看 复制代码
 <mapping resource="包名/UserModel.hbm.xml"/>


  • 添加持久化类.(需要基于注解)

[AppleScript] 纯文本查看 复制代码
<mapping class="包名.UserModel"/>


2.使用hibernate.properties加载配置, 这种方法无法自动加载配置资源文件(现在几乎不用,老版本使用)

[AppleScript] 纯文本查看 复制代码
 Configuration conf = new Configuration ();


资源文件添加方式:

  • 添加配置文件

[AppleScript] 纯文本查看 复制代码
conf. addResource(“XXX/UserModel.hbm.xml”);


  • 添加持久化类

自动读取类所在目录下同名配置文件UserModel.hbm.xml,配置文件命名要保持两个文件名一致
[AppleScript] 纯文本查看 复制代码
conf.addClass(UserModel.class);

SessionFactory
SessionFactory对象根据Configuration对象加载的配置信息创建得到,其中封装了配置信息中有关数据库的信息、所有的映射关系及预定义SQL语句.
[AppleScript] 纯文本查看 复制代码
        Configuration conf = new Configuration().configure();
        SessionFactory sf = conf.buildSessionFactory();
由于SessionFactory对象的创建需要基于所有的配置信息,因此创建此对象需要消耗大量的资源,通常一个应用程序中只初始化一个SessionFactory对象


Session
Session对象是Hibernate与应用程序进行交互的桥梁,应用程序与Hibernate之间通过Session进行数据交互,其功能相当于JDBC中的Connection.
[AppleScript] 纯文本查看 复制代码
       Configuration conf = new Configuration().configure();
        SessionFactory sf = conf.buildSessionFactory();
        Session s = sf.openSession();
        ... 逻辑代码
        s.colse();

Transaction
  • 开启事务

[AppleScript] 纯文本查看 复制代码
 Transaction t = s.beginTransaction();


  • 提交事务

[AppleScript] 纯文本查看 复制代码
 t.commit();


  • 回滚事务

[AppleScript] 纯文本查看 复制代码
 t.rollback();


形如:

[AppleScript] 纯文本查看 复制代码
  try {
            t.commit();
        } catch (Exception e) {  // 抛异常则回滚
            t.rollback();
        } finally {            // 关闭session
            session.close();
        }



传智播客·黑马程序员郑州校区地址
河南省郑州市 高新区长椿路11号大学科技园(西区)东门8号楼三层
联系电话 0371-56061160/61/62
来校路线  地铁一号线梧桐街站A口出




1 个回复

倒序浏览
收藏来看看
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马