在整个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语句.