Hibernate入门教程(三)

这篇博客由叩丁狼教育高级讲师钟昕灵撰写,深入浅出地介绍了Hibernate入门知识。内容涵盖了Configuration、SessionFactory、Session、Transaction、Query、Criteria和NativeQuery的使用,帮助读者理解Hibernate中的常用API,包括数据的保存、删除、更新、查询等操作,并提供了实例演示。
摘要由CSDN通过智能技术生成

讲师:钟昕灵,叩丁狼教育高级讲师。原创文章,转载请注明出处。

在上面的章节中,我们使用Hibernate完成了基本的CRUD,并对相关操作的执行流程进行了分析,相信大家对Hibernate的简单使用有了一定的了解,那么,接下来,我们来了解一下Hibernate中常用的API.

1. Configuration
  • Configuration conf = new Configuration();
    创建配置Configuration对象,同时加载classpath路径下的名称为hibernate.properties的文件
    常用方法:
  • Configuration configure();
    如果创建Configuration对象后不调用该方法,hibernate是默认加载classpath下的hibernate.properties文件
    调用该方法表示加载classpath下名称为hibernate.cfg.xml的配置文件
  • Configuration configure(String configureFileName);
    如果在我们的项目中配置文件的名称不是使用默认的名称,那么可以指定记载的配置文件名称
  • Configuration addResource(String resourceName)
    通常,我们在hibernate.cfg.xml文件中会指定加载的映射文件
<mapping resource="cn/wolfcode/_01_hello/User.hbm.xml" />

如果不使用上面这种配置文件的方式,我们还可以使用addResource方法指定要加载的映射文件

conf.addResource("cn/wolfcode/_01_hello/User.hbm.xml");
  • Configuration addClass(Class persistentClass);
    加载映射文件也可以使用该方法实现,如下
conf.addClass(User.class);

此时hibernate会找和User类同路径的名称为User.hbm.xml的映射文件

  • SessionFactory buildSessionFactory();
    创建SessionFactory对象
    2. SessionFactory

SessionFactory负责管理Session,管理连接池,管理Hibernate二级缓存以及预定义的SQL语句。
SessionFactory是一个重量级的(创建该对象的时候需要加载较多的资源文件,或者说创建对象比较耗时), 线程安全的对象(允许多线程并发访问),基于此,通常在一个hibernate应用中,我们只需要一个SessionFactory对象,所以,我们可以使用如下来创建SessionFactory对象

public class HibernateUtil {

    private static SessionFactory sessionFactory;

    static {
        //当前工具类被加载的时候,执行该静态代码块初始化SessionFactory对象
        sessionFactory = 
                new Configuration()
                    .configure()//加载classpath中的hibernate.cfg.xml文件
                    .buildSessionFactory();
    }

    public static SessionFactory getSessionFactory() {
        return sessionFactory;
    }
}

HibernateUtil.getSessionFactory() 能够保证在一个应

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值