番禺高端网站制作,什么网站可以做任务领赏金,上传商品的网站,想做一个自己的网站一、hibernate的入口Configuration 在Hibernate中#xff0c;Configuration是hibernate的入口。在实例化一个Configuration的时候#xff0c;Hibernate会自动在环境变量#xff08;classpath#xff09;里面查找Hibernate配置文件hibernate.properties。如果该文件存在Configuration是hibernate的入口。在实例化一个Configuration的时候Hibernate会自动在环境变量classpath里面查找Hibernate配置文件hibernate.properties。如果该文件存在则将该文件的内容加载到一个Properties的实例GLOBAL_PROPERTIES里面如果不存在将打印信息hibernate.properties not found 接下来Hibernate将所有系统环境变量System.getProperties()也添加到GLOBAL_PROPERTIES里面。如果配置文件hibernate.properties存在系统还会进一步验证这个文件配置的有效性对于一些已经不支持的配置参数系统将打印出警告信息。 默认状态下configure()方法会自动在环境变量classpath下面寻找Hibernate配置文件hibernate.cfg.xml如果该文件不存在系统会打印如下信息并抛出HibernateException异常: hibernate.cfg.xml not found如果该文件存在configure()方法会首先访问session-factory并获取该元素name的属性如果name的属性非空将用这个配置的值来覆盖hibernate.properties的hibernate.session_factory_name的配置的值从这里我们可以看出hibernate.cfg.xml里面的配置信息可以覆盖hibernate.properties的配置信息。 二、Configuration常用操作函数
(1)使用Hibernate配置文件 1、 Configuration 指定映射文件 Configuration cfgnew Configuration().configure(/hibernate.cfg.xml); 或者Configuration cfgnew Configuration().configure(/hibernate.properties); 2、Configuration指定映射文件 cfg.addResource(test/User.hbm.xml); 3、Configuration指定POJO类User.hbm.xml根User.java一个目录 cfg.addClass(test.Order.class); (2) Configuration指定Hibernate配置属性无配置文件加载了配置文件就不能使用这个方法 Configuration cfg new Configuration() .addClass(test.User.class) .setProperty(hibernate.dialect, org.hibernate.dialect.MySQLDialect) .setProperty(hibernate.connection.datasource, java:comp/env/jdbc/test) .setProperty(hibernate.order_updates, true); (3) SessionFactory 1、单个 SessionFactory实例 SessionFactory sessions cfg.buildSessionFactory(); 当所有映射定义被 Configuration 解析后应用程序必须获得一个用于构造org.hibernate.Session 实例的工厂SessionFactory。这个工厂将被应用程序的所有线程共享线程安全的全局对象只需要被实例化一次。单例模式。 2、Hibernate 允许应用程序创建多个SessionFactory 实例 用xml配置来配置多个数据库的话那就写多个配置文件。 对应两个数据库一个是MySQL一个是SQLServer可以把其xml文件定义为“mysql.cfg.xml” 和 “sqlserver.cfg.xml”。 Configuration类获取SessionFactory的代码如下 SessionFactory mysqlFactory new Configuration().configure(/mysql.cfg.xml).buildSessionFactory(); SessionFactory sqlserverFactory new Configuration().configure(/sqlserver.cfg.xml ).buildSessionFactory(); 三、Hibernate配置参数详解 1、Hibernate JDBC 属性 属性名 用途 hibernate.connection.driver_class JDBC driver class hibernate.connection.url JDBC URL hibernate.connection.username database user hibernate.connection.password 数据库用户密码 hibernate.connection.pool_size maximum number of pooled connections 2、Hibernate 数据源属性 属性名 用途 hibernate.connection.datasource 数据源 JNDI 名字 hibernate.jndi.url JNDI 提供者的 URL可选 hibernate.jndi.class JNDI InitialContextFactory 类可选 hibernate.connection.username 数据库用户可选 hibernate.connection.password 数据库密码可选 3、可选的配置属性 有大量属性能用来控制 Hibernate 在运行期的行为。它们都是可选的并拥有适当的默认值。 属性名 用途 可选值 内为默认 hibernate.dialect 允许 Hibernate 针对特定的关系数据库生成优化的SQL 的 org.hibernate.dialect.Dialect 的类名。 例如org.hibernate.dialect.MySQLDialect hibernate.show_sql 输出所有 SQL 语句到控制台。 true|false false hibernate.format_sql 在 log 和 console 中打印出更漂亮的 SQL。 true|false false hibernate.default_catalog 在生成的 SQL 中将给定的 catalog 附加于非全限定名的表名上 hibernate.session_factory_name org.hibernate.SessionFactory 创建后将自动使用这个名字绑定到 JNDI 中。 hibernate.max_fetch_depth 为单向关联一对一多对一的外连接抓取outer join fetch树设置最大深度。 0到3 hibernate.default_batch_fetch_size 为 Hibernate 关联的批量抓取设置默认数量。 4、8、16 hibernate.default_entity_mode 为由这个 SessionFactory 打开的所有 Session指定默认的实体表现模式。 dynamic-mapdom4jpojo hibernate.order_updates 强制 Hibernate 按照被更新数据的主键为SQL 更新排序。这么做将减少在高并发系统中事务的死锁。 true|false hibernate.generate_statistics 如果开启Hibernate 将收集有助于性能调节的统计数据。 true|false hibernate.use_identifier_rollback 如果开启在对象被删除时生成的标识属性将被重设为默认值。 true|false hibernate.use_sql_comments 如果开启Hibernate 将在 SQL 中生成有助于调试的注释信息默认值为 false。 true|false false