zoukankan      html  css  js  c++  java
  • Hibernate的映射文件配置

    对象关系的映射是用一个XML文档来说明的。映射文档可以使用工具来生成,如XDoclet,Middlegen和AndroMDA等。下面从一个映射的例子开始讲解映射元素,映射文件的代码如下:

    <?xml version="1.0"?>
    
    <!--
    
    所有的XML映射文件都需要定义如下所示的DOCTYPE。
    
    Hibernate会先在它的类路径(classptah)中搜索DTD文件。
    
    -->
    
    <!DOCTYPE hibernate-mapping PUBLIC
    
    "-//Hibernate/Hibernate Mapping DTD 3.0//EN"
    
    "http://hibernate.sourceforge.net/hibernate-mapping-3.0.dtd">
    
    <!--
    
    hibernate-mapping有几个可选的属性:
    
    schema属性指明了这个映射的表所在的schema名称。
    
    default-cascade属性指定了默认的级联风格 可取值有 none、save、update。
    
    auto-import属性默认让我们在查询语言中可以使用非全限定名的类名 可取值有 truefalse。
    
    package属性指定一个包前缀。
    
    -->
    
    <hibernate-mapping schema="schemaName" default-cascade="none" 
    
    auto-import="true" package="test">
    
    <!--用class元素来定义一个持久化类 -->
    
    <class name="People" table="person">
    
    <!-- id元素定义了属性到数据库表主键字段的映射。-->
    
    <id name="id">
    
    <!-- 用来为该持久化类的实例生成唯一的标识 -->
    
    <generator class="native"/>
    
    </id>
    
    <!-- discriminator识别器 是一种定义继承关系的映射方法-->
    
    <discriminator column="subclass" type="character"/>
    
    <!-- property元素为类声明了一个持久化的,JavaBean风格的属性-->
    
    <property name="name" type="string">
    
    <column name="name" length="64" not-null="true" />
    
    </property>
    
    <property name="sex"
    
    not-null="true" 
    
    update="false"/>
    
    <!--多对一映射关系-->
    
    <many-to-one name="friend"
    
    column="friend_id"
    
    update="false"/>
    
    <!--设置关联关系-->
    
    <set name="friends" inverse="true" order-by="id">
    
    <key column="friend_id"/>
    
    <!—一对多映射-->
    
    <one-to-many class="Cat"/>
    
    </set>
    
    </class>
    
    </hibernate-mapping>

    组件应用的方法

      组件有两种类型,即组件(component)和动态组件(dynamic-component)。在配置文件中,component元素为子对象的元素与父类对应表的字段建立起映射关系。然后组件可以声明它们自己的属性、组件或者集合。component元素的定义如下所示:

    <component name="propertyName" class="className" insert="true|false" 
    
    upate="true|false" access="field|property|ClassName"> 
    
    <property ...../>
    
    <many-to-one .... />
    
    ........
    
    </component> 

    在这段代码中,name是指属性名,class是类的名字,insert指的是被映射的字段是否出现在SQL的INSERT语句中,upate指出被映射的字段是否出现在SQL的UPDATE语句中,access指出访问属性的策略。

      Hiebernate的基本配置

      Hibernate的数据库连接信息是从配置文件中加载的。Hibernate的配置文件有两种形式:一种是XML格式的文件,一种是properties属性文件。properties形式的配置文件默认文件名是hibernate.properties,一个properties形式的配置文件内容如下所示:

    #指定数据库使用的驱动类
    
    hibernate.connection.driver_class = com.mysql.jdbc.Driver r
    
    #指定数据库连接串
    
    hibernate.connection.url = jdbc:mysql://localhost:3306/db
    
    #指定数据库连接的用户名
    
    hibernate.connection.username = user
    
    #指定数据库连接的密码
    
    hibernate.connection.password = password
    
    #指定数据库使用的方言
    
    hibernate.dialect = net.sf.hibernate.dialect.MySQLDialect
    
    #指定是否打印SQL语句
    
    hibernate.show_sql=true 

    在配置文件中包含了一系列属性的配置,Hibernate将根据这些属性来连接数据库。

      在XML格式的配置文件中,除了基本的Hibernate配置信息,还可以指定具体的持久化类的映射文件,这可以避免将持久化类的配置文件硬编码在程序中。XML格式的配置文件的默认文件名为hibernate.cfg.xml,一个XML配置文件的示例如下所示:

    <?xml version='1.0' encoding='UTF-8'?>
    
    <!DOCTYPE hibernate-configuration PUBLIC
    
    "-//Hibernate/Hibernate Configuration DTD 3.0//EN"
    
    "http://hibernate.sourceforge.net/hibernate-configuration-3.0.dtd">
    
    <hibernate-configuration>
    
    <session-factory>
    
    <!--显示执行的SQL语句-->
    
    <property name="show_sql">true</property>
    
    <!--连接字符串-->
    
    <property name="connection.url">jdbc:mysql://localhost:3306/STU</property>
    
    <!--连接数据库的用户名-->
    
    <property name="connection.username">root</property>
    
    <!--数据库用户密码-->
    
    <property name="connection.password">root</property>
    
    <!--数据库驱动-->
    
    <property name="connection.driver_class">com.mysql.jdbc.Driver</property>
    
    <!--选择使用的方言-->
    
    <property name="dialect">org.hibernate.dialect.MySQLDialect</property>
    
    <!--映射文件 -->
    
    <mapping resource="com/stuman/domain/Admin.hbm.xml" />
    
    <!--映射文件-->
    
    <mapping resource="com/stuman/domain/Student.hbm.xml" />
    
    </session-factory>
    
    </hibernate-configuration> 

    properties形式的配置文件和XML格式的配置文件可以同时使用。当同时使用两种类型的配置文件时,XML配置文件中的设置会覆盖properties配置文件的相同的属性。

  • 相关阅读:
    记录wordpress+nginx配置的坑
    Nginx进行反向代理多个web项目
    Docker 安装 Zabbix-4
    小特跨境电商ERP 小程序版 库存好帮手
    小特跨境电商ERP 浏览器版 为决策者提供数据支持
    小特跨境电商ERP桌面版 8.如何部署 真的这么难安装吗?
    小特跨境电商ERP桌面版 7.销售订单毛利计算 就是这么简单
    小特跨境电商ERP桌面版 6.运费结算是个大问题?容易一团糟
    小特跨境电商ERP桌面版 5.订单发货提交后,后续还要做什么?
    小特跨境电商ERP桌面版 4.平台商品和本地单品如何映射?
  • 原文地址:https://www.cnblogs.com/xhj123/p/6106075.html
Copyright © 2011-2022 走看看