zoukankan      html  css  js  c++  java
  • Java-hibernate的映射文件

    Hibernate 需要知道怎样去加载(load)和存储(store)持久化类的对象。这正是 Hibernate 映


    射文件发挥作用的地方。映射文件告诉 Hibernate 它应该访问数据库(database)里面的哪个表


    (table)及应该使用表里面的哪些字段(column)。


    一个映射文件的基本结构看起来像这样:

    如果需要看DTD的配置文件可以到hibernate3.jar文件下的org.hibernate包下面有个hibernate-mapping-3.0.dtd和hibernate-configuration-3.0.dtd文件就是这里的约束

    在 hibernate-mapping 标签(tag)之间, 含有一个 class 元素。所有的持久化实体类(再次声
    明,或许接下来会有依赖类,就是那些次要的实体)都需要一个这样的映射,来把类对象映射到
    SQL 数据库里的表:

    <?xml version="1.0"?>
    <!DOCTYPE hibernate-mapping PUBLIC
    "-//Hibernate/Hibernate Mapping DTD 3.0//EN"
    "http://www.hibernate.org/dtd/hibernate-mapping-3.0.dtd">
    <hibernate-mapping package="org.hibernate.tutorial.domain">

       <!--这里Event是类名,上面的package的路径就是这个类名的包,EVENTS则是对应的表名-->

       <class name="Event" table="EVENTS">

         <!--这里id 标签的name属性是对应的类的一个属性,column是对应的表的主键名-->

             <id name="id" column="EVENT_ID">

                 <!--generator 元素指定标识符的生成策略(也就是标识符值是怎么产生的) native(全局性唯一) increment(自增)-->

                 <generator class="native"> </generator>  
            </id>

     <!--这里的写法很多,第一种是将表和类型写在一起,其他的没有写的时候hibernate会自动使用缺省的配置-->

           <property name="date" type="timestamp" column="EVENT_DATE"/>

           <property name="title"/>

     <!--这种写法之名了数据类型,将表的字段单独拿出来成一个标签, 因为表还具有自己的一些属性-->

           <property name="name" type="java.lang.String">
               <column name="name" not-null="true"/>
           </property>


       </class>

    </hibernate-mapping
    >

    为了保存 Hibernate 的配置,我们可以使用一个简单的 hibernate.properties 文件,或者一个
    稍微复杂的 hibernate.cfg.xml,甚至可以完全使用程序来配置 Hibernate。多数用户更喜欢使用
    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>
            <!-- 调用数据库的驱动 -->
    		<property name="connection.driver_class">com.mysql.jdbc.Driver</property>
    		<!-- 配置DATE的地址 -->
    		<property name="connection.url">jdbc:mysql://127.0.0.1:3306/test</property>
    		<!-- 配置数据库的用户名 -->
    		<property name="connection.username">root</property>
    		<!-- 配置数据库的密码 -->
    		<property name="connection.password">123456</property>
    		<!-- 输出SQL执行语句 -->
    		<property name="show_sql">true</property>
    		<!-- 确定方言 -->
    		<property name="dialect">org.hibernate.dialect.MySQLInnoDBDialect</property>
    		<!-- 能够生成DDL建表语句, -->
    		<property name="hbm2ddl.auto">update</property>
    		<!-- 读取映射的文件 -->
    		<mapping resource="com/sun/domain/Employee.hbm.xml"/>
    		<mapping resource="com/sun/domain/Content.hbm.xml"/>
    </session-factory>
    </hibernate-configuration>
    

      

      

  • 相关阅读:
    MySQL存储树形数据优化技笔记
    收集18个高大上的浏览器小技巧
    收集18个高大上的浏览器小技巧
    盘点15个不起眼但非常强大的 Vim 命令
    盘点15个不起眼但非常强大的 Vim 命令
    为什么开发者应该摒弃敏捷?(转)
    为什么开发者应该摒弃敏捷?(转)
    MySQL 中事务、事务隔离级别详解
    pandas数据对齐
    Bokeh绘图
  • 原文地址:https://www.cnblogs.com/sunxun/p/4028386.html
Copyright © 2011-2022 走看看