Hibernate配置文件详解

Hibernate的配置

在hibernate中,我们主要使用两种配置文件:

  1. 核心配置文件——hibernate.cfg.xml(主要描述Hibernate的相关配置)
  2. 映射配置文件——xxx.hbm.xml映射配置文件——xxx.hbm.xml

核心配置文件

对于Hibernate的核心配置文件它有两种方式:

  1. hibernate.cfg.xml
  2. hibernate.properties
    我们在开发中使用比较多的是hibernate.cfg.xml这种方式,原因是它的配置能力更强,并且易于修改。

我们以上个入门案例为例,可将以上配置文件的内容分为3部分来看待:

1)加载数据库相关信息


<property name="hibernate.connection.driver_class">com.mysql.jdbc.Driverproperty>
<property name="hibernate.connection.url">jdbc:mysql:///hibernateproperty>
<property name="hibernate.connection.username">rootproperty>
<property name="hibernate.connection.password">123456property>

2)Hibernate的相关配置


<property name="hibernate.show_sql">trueproperty>

<property name="hibernate.format_sql">trueproperty>


<property name="hibernate.dialect">org.hibernate.dialect.MySQLDialectproperty>

<property name="hibernate.hbm2ddl.auto">updateproperty>

3)加载映射配置文件


<mapping resource="com/oak/entity/User.hbm.xml" />

映射配置文件

映射配置文件的名称是:类名.hbm.xml,它一般放置在实体类所在的包下。这个配置文件的主要作用是建立表与类之间的映射关系。

1)统一声明包名,这样在中就不需要写类的全名。

<hibernate-mapping package=" com.oak.entity">
    <class name="User" table="t_user" catalog="hibernate">
        ....
    class>
hibernate-mapping>

2)关于标签配置的详细介绍

  1. name属性:类的全名称。
  2. table属性:映射到数据库里面的那个表的名称,可以省略,这时表的名称就与类名一致。
  3. catalog属性:数据库名称,可以省略,如果省略,则参考核心配置文件中url路径中的库名称。

3)关于标签配置的详细介绍

<hibernate-mapping package="com.oak.entity">
    <class name="User" table="t_user" catalog="hibernate">
        
        
        <id name="userId" column="user_id" type="int"> 
            
            <generator class="native">generator>
        id>
        ......
    class>
hibernate-mapping>

首先该标签必须存在。是用于建立类中的属性与表中的主键映射。

  1. name:类中的属性名称
  2. column:表中的主键名称,column也可以省略,这时列名就与类中属性名称一致
  3. length:字段长度,如果length忽略不写,且你的表是自动创建这种方案,那么length的默认长度是255
  4. type属性:指定类型
  5. 它主要是描述主键生成策略,这里就不做篇幅来介绍了,请看后面的文章。

关于< property >标签 :它是描述类中属性与表中非主键字段的映射关系。

4)关于Hibernate映射配置文件中的类型问题

对于type属性它的取值可以有三种:

  1. Java中的数据类型
  2. Hibernate中的数据类型
  3. SQL的数据类型
    Hibernate配置文件详解_第1张图片

举例说明:



<hibernate-mapping package="com.oak.entity">
    
    <class name="User" table="t_user" catalog="hibernate">
        
        
        <id name="userId" column="user_id" type="int"> 
            
            <generator class="native">generator>
        id>
        
        <property name="username" column="username" length="20" type="string">property> 
        <property name="password">
            <column name="password" length="20" sql-type="varchar(50)">column> 
        property>
    class>
hibernate-mapping>

你可能感兴趣的:(Hibernate系列)