Hibernate之配置文件详解

目录

Hibernate配置文件详解

映射配置文件(Xxx.hbm.xml)

根元素--hibernate-mapping

class元素--类映射

id元素--主键映射

property元素--类属性映射

核心配置文件(hibernate.cfg.xml)

必选属性配置(5个)

可选属性配置(3个)

映射配置文件引入


Hibernate配置文件详解

Hibernate的相关配置文件分为两种:

  1. Xxx.hbm.xml:它主要是用于描述类与数据库中的表的映射关系
  2. hibernate.cfg.xml:它是Hibernate框架的核心配置文件
  • 映射配置文件(Xxx.hbm.xml)

实体类Customer目前还不具备持久化操作的能力,而Hibernate需要知道实体类Customer映射到数据库Hibernate哪个表,以及类中的哪个属性对应数据库表中的哪个字段,这些都需要在映射文件中配置。该文件用于向Hibernate提供持久化类到关系型数据库的映射,每个映射文件的结构基本都是相同的,映射文件通常是一个XML文件,在实体类Customer包com.mark.domain包下创建Customer.hbm.xml映射配置文件,一般命名为  类名.hbm.xml,其普遍代码形式如下

<?xml version="1.0" encoding="UTF-8"?>

  		<!--   映射文件的dtd信息 -->
<!DOCTYPE hibernate-mapping PUBLIC 
    "-//Hibernate/Hibernate Mapping DTD 3.0//EN"
    "http://www.hibernate.org/dtd/hibernate-mapping-3.0.dtd">
    
  		<!--   name代表实体类名 table代表的是表名 -->
	<class name="Xxx" table="xxx">
	
	  	<!--   name代表的是Xxx类中属性   column代表的是xxx表中的字段 -->
	 	<id name="cust_id" column="cust_id">
	 	<!--    	主键生成策略			-->
	 		<generator class="native"></generator>
	 	</id>
	 	
	 	<!--    其它属性用property标签映射	-->
	 	<property name="XXX" column="xxx" ></property>
	</class>
</hibernate-mapping>

根元素--hibernate-mapping

package属性:填写一个包名,在元素内部,凡是需要书写完整类名的属性,可以直接简写类名

class元素--类映射

class标签:用来创建类和表的映射

                * name属性:类中的全路径
                * table属性:表名(如果类名和表名是一致的,那么table属性可以省略)
                * catalog属性:数据库名称,可以省略

id元素--主键映射

 id标签:用来建立类中的属性与表中的主键字段对应
                * name属性:类中的属性名
                * column属性:表中字段名(如果类名和表名是一致的,那么column属性可以省略)
                * length属性:字段的长度
                * type属性:类型,三种写法:Java数据类型,Hibernate数据类型(默认),SQL类型

property元素--类属性映射

 property标签:用来建立类中的普通属性与表中的字段对应
                * name属性:类中的属性名
                * column属性:表中字段名(如果类名和表名是一致的,那么column属性可以省略)
                * length属性:字段的长度
                * type属性:类型,三种写法:Java数据类型,Hibernate数据类型(默认),SQL类型
                * not-null属性:配置该属性(列)是否能为空,默认值为false

  • 核心配置文件(hibernate.cfg.xml)

Hibernate的映射文件反映了持久化类和数据库表之间的映射信息,而Hibernate的配置文件则主要用来配置数据库连接以及Hibernate运行时所需要的各个属性的值。在项目的src下创建一个hibernate.cfg.xml核心配置文件,其普遍代码形式如下

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE hibernate-configuration PUBLIC
	"-//Hibernate/Hibernate Configuration DTD 3.0//EN"
	"http://www.hibernate.org/dtd/hibernate-configuration-3.0.dtd">
	
<hibernate-configuration>
	<session-factory>
	
	<!-- 	必要配置信息:连接数据库的基本信息		 -->
		<property name="hibernate.connection.driver_class">com.mysql.jdbc.Driver</property>
		<property name="hibernate.connection.url">jdbc:mysql:///crm</property>
		<property name="hibernate.connection.username">root</property>
		<property name="hibernate.connection.password">root</property>
		
		<!--Hibernate的属性  -->
		<!--Hibernate的方言:根据配置的方言生成相应的SQL语句  -->
		<property name="hibernate.dialect">org.hibernate.dialect.MySQLDialect</property>
		
		<!--Hibernate显示SQL语句  -->
		<property name="hibernate.show_sql">true</property>
		<!--Hibernate格式化SQL语句  -->
		<property name="hibernate.format_sql">true</property>
		
		<!--Hibernate的hbm2ddl(数据库定义语言:create  drop   alter  update .....)  -->
		<!-- 
			hbm2ddl.auto的取值
				* none:不用Hibernate自动生成表
				* create:每次都会创建一个新的表(测试)
				* create-drop:每次都会创建一个新的表,执行程序结束后删除这个表(测试)
				* update:如果数据库中有表,使用原来的表,如果没有表,创建一个新表,可以更新表结构
				* validate:只会使用原有的表,对映射关系进行校验
		 -->
		<property name="hibernate.hbm2ddl.auto">update</property>
		
		<!--Hibernate加载映射  -->
		<mapping resource="com/mark/domain/Customer.hbm.xml"/>
	</session-factory>
</hibernate-configuration>

必选属性配置(5个)

           数据库驱动              --  hibernate.connection.driver_class

连接数据库url          --  hibernate.connection.url

数据库连接用户名   --  hibernate.connection.username

数据库连接密码       --  hibernate.connection.password

数据库方言              --  hibernate.dialect

可选属性配置(3个)

控制台显示SQL语句 --  hibernate.show_sql

格式化SQL语句        --  hibernate.format_sql

DDL数据库               --  hibernate.hbm2ddl.auto  取值:validate、update、create和create-drop

                                                          * validate:只会使用原有的表,对映射关系进行校验

                                                          * update:如果数据库中有表,使用原来的表,如果没有表,创建一个新表,可以更新表结构

                                                          * create:每次都会创建一个新的表(测试)

                                                          * create-drop:每次都会创建一个新的表,执行程序结束后删除这个表(测试)                  

映射配置文件引入

           映射配置文件引入   --  map  resource

猜你喜欢

转载自blog.csdn.net/mmake1994/article/details/81481428