发布于2026-07-22 阅读(0)
扫一扫,手机访问
Hibernate 的配置文件是每个使用该框架的开发者都会接触到的核心环节。它决定了数据源、方言、映射文件等一系列关键设置,可以说是整个 ORM 体系的门户。下面我们就来详细拆解一下主清单文件(hibernate.cfg.xml)的配置细节,包括两种加载方式、各项核心参数的含义,以及二级缓存的配置方法。
Hibernate 启动时,默认会扫描工程 src 目录下的 hibernate.cfg.xml 文件。这种方式最为常见,直接使用 Configuration().configure() 即可加载:
public class H3Utils {
private static SessionFactory factory = new Configuration().configure().buildSessionFactory();
public static Session getCurrentSession(){
return factory.getCurrentSession();
}
}
如果配置文件放在其他目录下,就需要手动指定路径。比如放在 android/longs/study/config/ 下,写法如下:
public class HBUtils {
private static SessionFactory factory =
new Configuration()
.configure("android/longs/study/config/hibernate.cfg.xml")
.buildSessionFactory();
public static Session openSession(){
return factory.openSession();
}
public static Session getCurrentSession(){
return factory.getCurrentSession();
}
}
接下来看一个完整的 hibernate.cfg.xml 示例,每个配置项都有明确的用途:
com.mysql.jdbc.Driver url root 123456 org.hibernate.dialect.MySQL5Dialect true true update none thread org.hibernate.connection.C3P0ConnectionProvider
关于第4项“表的创建”,hbm2ddl.auto 的取值直接影响数据库表的行为:
create : 每次运行都会创建表,如果表已存在则先删除再创建。程序结束后表保留。 create-drop : 行为与 create 类似,但程序结束后会删除表。注意:必须执行 factory.close(),否则效果等同于 create。 update : 表不存在则创建,存在则维护映射关系(只添加新字段,不删除已有字段)。 validate : 运行时校验映射文件与表结构是否一致,不一致则抛出异常。
当需要提升性能时,二级缓存是常用手段。以下配置项可以组合使用:
4 true org.hibernate.cache.EhCacheProvider true true
这里需要特别注意一点:一级缓存缓存的是对象,二级缓存缓存的是数据。在二级缓存中,如果集合缓存里的对象没有配置类缓存,那么查询时会执行 OID 查询,而不是直接从缓存中获取对象实例。理解这个区别,能避免很多性能陷阱。
售后无忧
立即购买>office旗舰店
售后无忧
立即购买>office旗舰店
售后无忧
立即购买>office旗舰店
售后无忧
立即购买>office旗舰店
正版软件
正版软件
正版软件
正版软件
正版软件
1
2
3
7
8