zoukankan      html  css  js  c++  java
  • Hibernate框架学习(二)——api详解

    一、Configuration对象

    功能:配置加载类,用于加载主配置,orm元数据加载。

     1         //1、创建,调用空参构造(还没有读配置文件)
     2         Configuration conf=new Configuration();
     3         //2、读取指令配置文件=>空参加载方法,加载src下的hibernate.cfg.xml文件
     4         conf.configure(); 
     5         
     6         //3、读取指定orm元数据(扩展),如果主配置中已经引入映射配置,不需要手动加载
     7         //conf.addResource(resourceName);
     8         //conf.addClass(persistentClass);
     9         
    10         //4、根据配置信息创建SessionFactory对象
    11         SessionFactory sf = conf.buildSessionFactory();

    二、SessionFactory对象

    功能:用于创建操作数据库核心对象Session对象的工厂,简单说功能就一个——>创建session对象。

    注意:1.SessionFactory负责保存和使用所有配置信息,消耗内存资源非常大
          2.SessionFactory属于线程安全的对象设计
    结论:保证在web项目中只创建一个SessionFactory

    1      //5、获得session
    2         //打开一个新的session对象
    3         sf.openSession();
    4         //获得一个与线程绑定的session对象
    5         sf.getCurrentSession();

    在实际项目使用中,常常会抽取出一个HibernateUtils的工具类,用来提供Session对象。

    Hibernate工具类:

     1 package cn.itheima.utils;
     2 
     3 import org.hibernate.Session;
     4 import org.hibernate.SessionFactory;
     5 import org.hibernate.cfg.Configuration;
     6 
     7 public class HibernateUtils {
     8     //保证web项目中只创建一个SessionFactory
     9     private static SessionFactory sf;
    10     
    11     static{
    12         Configuration conf=new Configuration().configure();
    13         sf = conf.buildSessionFactory();
    14     }
    15     
    16     //获得session=>获得全新的session
    17     public static Session openSession(){
    18         Session session = sf.openSession();        
    19         return session;
    20     }
    21     
    22     //获得session=>获得与线程绑定的session
    23     public static Session getCurrentSession(){
    24         Session session = sf.getCurrentSession();
    25         return session;        
    26     }
    27     
    28     //测试一下工具类
    29     public static void main(String[] args){
    30         System.out.print(HibernateUtils.openSession());
    31     }
    32 }

    三、Session对象

    功能:表达Hibernate框架与数据库之间的连接(会话), 类似于JDBC年代的Connection对象,还可以完成对数据库中数据的增删改查操作。
        
       session是Hibernate操作数据库的核心对象

    1、获得事务

    2、session的新增

    3、session的查询(通过id,第二个参数要带数据类型,如下Long类型,在1后面添加l)

    4、session的修改(通过id)

    5、session的删除(通过id)

    四、Transaction对象

    功能:封装了事务的操作

    1、打开事务

    方式一:

    方式二:

    2、提交事务

    3、回滚事务

  • 相关阅读:
    使用rem来开发你的移动端网站
    在网页布局中合理使用inline formating context(IFC)
    构建OLAP CDP平台 Maven父子项目
    2014世界杯决赛观后感
    2013岁末总结
    11月11日上班杂谈
    这一年
    湖南联通发福利了C#为你月赚150M流量回家过年不再愁
    C# 实现对接电信交费易自动缴费 续(winio/winring0 自动填密码)
    C# 实现对接电信交费易自动缴费
  • 原文地址:https://www.cnblogs.com/cxq1126/p/8371763.html
Copyright © 2011-2022 走看看