讲师:钟昕灵,叩丁狼教育高级讲师。原创文章,转载请注明出处。
在上面的章节中,我们使用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负责管理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() 能够保证在一个应