(三)Hibernate配置文件详解

        在整个Hibernate编写的过程之中会生成一些文件并且也使用到了一些新的处理类.

配置文件说明

        在整个Hibernate里面最为核心的两种配置文件:

        ●Hibernate总配置文件:hibernate.cfg.xml;

        ●每一张实体表的配置文件:POJO类名称.hbm.xml(Member.hbm.xml)

1.Hibernate映射文件(*.hbm.xml)

Hibernate是一个ORMping映射框架,那么所谓的ORMpring指的是对象与数据表的操作进行关联,当前操作的是一张member表,那么自然简单Java类的名称就应该是Member,而后每一个Member类的组成一定要与数据表结构一一对应,而描述这个对应操作的就是Member.hbm.xml.


范例:观察Member.hbm.xml文件的定义

<?xml version="1.0" encoding="utf-8"?>
	<!-- 定义的是XML文件的文档结构,必须按照指定的顺序与名称编写文件 -->
<!DOCTYPE hibernate-mapping PUBLIC "-//Hibernate/Hibernate Mapping DTD 3.0//EN"
"http://www.hibernate.org/dtd/hibernate-mapping-3.0.dtd">
<!-- 
    Mapping file autogenerated by MyEclipse Persistence Tools
-->
<hibernate-mapping>
		<!-- 定义简单Java类的完整名称,通过反射加载 -->
		<!-- 每一个映射文件都要求有一个与之对应的POJO类存在,此文件 的作用就是描述POJO类的数据表的字段映射-->
    	<!--name描述的是POJO类,而table属性描述的是这个类对应的数据表  -->
    	<!-- catalog表示的是操作的模式名称(数据库名称),一般 省略-->
    <class name="cn.zwb.pojo.Member" table="member" catalog="aaa">
        	<!-- 每一张实体表都一定会包含有一个主键的列,所以此处描述主键列 -->
        	<!-- name描述的是在POJO类中的属性名称 ,type描述的是POJO类属性的类型-->
        <id name="mid" type="java.lang.String">
            <!-- 此POJO类的属性与数据表中的列的对应关系 -->
            <!-- name表示列名称,而length表示的是name列在表中定义的长度 -->
            <column name="mid" length="50" />
          	<!-- 表示主键的生成方式,本次使用的是指派模式 -->
            <generator class="assigned"></generator>
        </id>
        	<!-- 后面ing一的都是类中的属性以及表中的非主键字段的映射关系 -->
        	<!-- 此处描述的是映射name类以及name数据列的关系 -->
        <property name="name" type="java.lang.String">
            <column name="name" length="50" />
        </property>
        <property name="age" type="java.lang.Integer">
            <column name="age" />
        </property>
        <property name="salary" type="java.lang.Double">
            <column name="salary" precision="22" scale="0" />
        </property>
        <property name="birthday" type="java.lang.Double">
            <column name="birthday" precision="22" scale="0" />
        </property>
        <property name="node" type="java.lang.String">
            <column name="node" length="65535" />
        </property>
    </class>
</hibernate-mapping>

        在Hiberate之中针对于主键的生成方式有如下几种:

        ●主键由自己输入:assigned;

        ●如果主键是由数据表自动增长的列,使用:navite;

        ●如果要想生成一个无重复的十六进制的字符串.uuid.hex

2.Hibernate的核心配置文件:hibernate.cfg,xml(只有一个);

        ●一个hibernate.cfg.xml文件里面可以包含有多个"*.hbm"文件

范例: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">
<!-- Generated by MyEclipse Hibernate Tools.                   -->
<!-- 此处表示进行Hibernate的配置操作,所有的配置通过Configuration类取得 -->
<hibernate-configuration>
	<!-- 定义Hibernate的连接工厂类,主要负责数据库连接的取得 -->	
	<session-factory>
		<!-- 此操作的主要意义在于MyEclipse配置使用,开发无用 -->
		<property name="myeclipse.connection.profile">mysql</property>
		<!-- 数据库的连接方言,如果要修改使用数据库,修改方言即可 -->
		<property name="dialect">
			org.hibernate.dialect.MySQLDialect
		</property>
		<!-- 数据库连接的用户名 -->
		<property name="connection.password">123456</property>
		<!-- 连接数据的密码 -->
		<property name="connection.username">root</property>
			<!-- 数据库的连接地址 -->
		<property name="connection.url">
			jdbc:mysql://localhost:3306/aaa
		</property>
		<!-- 数据库的连接驱动程序 -->
		<property name="connection.driver_class">
			com.mysql.jdbc.Driver
		</property>
		<!-- 配置所有的*.hbm.xml文件的路径 -->
		<mapping resource="cn/zwb/pojo/Member.hbm.xml" />
	</session-factory>
</hibernate-configuration>

        在实际的开发环境之中,还需要针对于hibernate文件进行一些修改,假设

        ●设置显示执行的SQL语句;


<property name="show_sql">true</property>

        ●格式化显示SQL语句


        <property name="format_sql">true</property>

        此时会以缩进的形式显示当前执行的SQL语句.



猜你喜欢

转载自blog.csdn.net/qq1019648709/article/details/80684173