专注Java教育14年 全国咨询/投诉热线:444-1124-454
星辉LOGO图
始于2009,口口相传的Java黄埔军校
首页 hot资讯 Hibernate配置文件的方法

Hibernate配置文件的方法

更新时间:2022-12-20 11:25:18 来源:星辉 浏览428次

HBM的全称是Hibernate Mapping。它是一个 XML 文件 ,我们在其中定义了 POJO 类到数据库表和 POJO 类变量到表列之间的映射。 资源文件 hibernate.cfg.xml,支持表示Hibernate配置信息。 描述 JDBC 连接信息的 connection.driver_class、connection.URL、connection.username 和 connection.password 属性元素。connection.pool_size 用于配置Hibernate 内置的连接池有多少个连接到池中。 Hibernate XML映射文件,包含Java类与数据库表的映射关系。它通常名为“xx.hbm.xml”,在 Hibernate 配置文件“hibernate.cfg.xml”中表示。

例如,映射文件 (hbm.xml) 在“映射”标签中提到。

<休眠配置>
<会话工厂>
  <property name="hibernate.bytecode.use_reflection_optimizer">假</property>
  <property name="hibernate.connection.driver_class">com.mysql.jdbc.Driver</property>
  <property name="hibernate.connection.password">密码</property>
  <property name="hibernate.connection.url">jdbc:mysql://localhost:3306/demo</property>
  <property name="hibernate.connection.username">root</property>
  <property name="hibernate.dialect">org.hibernate.dialect.MySQLDialect</property>
  <property name="show_sql">真</property>
  <mapping resource="com/demo/common/HiberDemo.hbm.xml"></mapping>
</会话工厂>
</休眠配置>

以编程方式添加 Hibernates 映射文件 (hbm.xml):

Hibernate 为开发人员提供了一种从技术上添加映射文件的方法。

让我们通过将“ hbm.xml ”文件路径作为参数传递给 addResource() 方法来修改默认的 Hibernate SessionFactory 类:

SessionFactory sessionFactory = new Configuration().addResource(“com/demo/commonStock.hbm.xml”).buildSessionFactor();

HibernateUtil.java 示例,以编程方式加载 Hibernate XML 映射文件 demo.hbm.xml”:

导入 org.hibernate.SessionFactory;
导入 org.hibernate.cfg.Configuration;
公共类 HibernateUtil { 
       private static final SessionFactory sessionFactory = buildSessionFactory();
       私有静态 SessionFactory buildSessionFactory() {
              尝试 { 
                     会话工厂 sessionFactory = new Configuration()
                                  .configure("/com/demo/persistence/hibernate.cfg.xml")
                                  .addResource("com/demo/common/Stock.hbm.xml")
                                  .buildSessionFactory(); 
                     返回会话工厂; 
              } 抓住(可抛出的 e){                  
                     System.err.println("初始 SessionFactory 创建失败。" + e);
                     抛出新的 ExceptionInInitializerError(e);
              }
       }

有两个属性元素声明了 Event 类的其余两个属性:即日期和标题。

日期属性映射包括列属性,但标题没有。当没有列属性时,Hibernate 使用属性名作为列名。这适用于标题,但由于日期是大多数数据库中的保留关键字。

公共静态 SessionFactory getSessionFactory() {
              返回会话工厂;
       } 
       公共静态无效关闭(){
              // 关闭缓存和连接池
              getSessionFactory().close();
       } 
}

hibernate 中有两种映射方式——第一种是使用 hibernate 注释,第二种是使用 hbm.xml。

当我们使用 hbm.xml 时,只需修改 hibernate-cfg.xml 中的默认 hibernate SessionFactory 类,绕过您的“hbm.xml”文件路径作为资源方法的参数。

示例: 这里,我们以员工表为例。

Employee.hbm.xml 文件是您的 hbm.xml 文件,其中映射了表列及其类型。

员工.hbm.xml

<休眠映射>
<class name="net.roseindia.table.Employee" table="employee">
<id name="empId" type="int" column="emp_id">
<generator class="native" />
</id>
<property name="EmpName" type="string" column="emp_name" />
<property name="salary" type="int" column="emp_salary" />
<property name="designation" type="string" column="designation" />
<property name="address" type="string" column="address" />
</类>
</休眠映射>

hibernate-cfg.xml 是你映射hbm.xml的hibernate的配置文件

<休眠配置>
<会话工厂>
<!-- 数据库连接设置 -->
<property name="connection.driver_class">com.mysql.jdbc.Driver</property>
<property name="connection.url">jdbc:mysql://localhost:3306/hibernate</property>
<property name="connection.username">root</property>
<property name="connection.password">root</property>
<!-- JDBC连接池(使用内置)-->
<property name="connection.pool_size">1</property>
<!-- SQL 方言 -->
<property name="dialect">org.hibernate.dialect.MySQLDialect</property>
<!-- 启用 Hibernate 的自动会话上下文管理 -->
<property name="current_sesion_context_class">线程</property>
<!-- 禁用二级缓存 -->
<property name="cache.provider_class">org.hibernate.cache.NoCacheProvider</property>
<!-- 将所有执行的 SQL 回显到标准输出 -->
<property name="show_sql">真</property>
<property name="hbm2ddl.auto">无</property>
<mapping resource="Employee.hbm.xml"/>
</会话工厂> 
</休眠配置>

通过上述介绍,相信大家对Hibernate配置文件的方法已经有所了解,大家如果想了解更多相关知识,不妨来关注一下本站的Hibernate入门视频,里面的课程内容细致全面,由浅到深,适合没有基础的小伙伴学习,希望对大家能够有所帮助。

提交申请后,顾问老师会电话与您沟通安排学习

免费课程推荐 >>
技术文档推荐 >>