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>

  

  

Java-hibernate的映射文件的更多相关文章

  1. Hibernate之深入Hibernate的映射文件

    这周周末 要把hibernate的映射文件搞定 .. 1.映射文件的主结构 主要结构  :根元素为<hibernate-mapping ></hibernate-mapping> ...

  2. Java NIO 内存映射文件

    Java NIO 内存映射文件 @author ixenos 文件操作的四大方法 前提:内存的访问速度比磁盘高几个数量级,但是基本的IO操作是直接调用native方法获得驱动和磁盘交互的,IO速度限制 ...

  3. 使用oracle数据库和MySQL数据库时hibernate的映射文件.hbm.xml的不同

    假设是使用oracle数据库.那么hibernate的映射文件.hbm.xml例如以下: <id name="xuehao" column="xuehao" ...

  4. Hibernate的映射文件

    映射文件的结构和属性 一个映射文件(mapping file)由一个根节点<hibernate-mapping>和多个<class>节点组成, 首先看看根节点<hiber ...

  5. 利用MyEclipse的ant插件生成Hibernate的映射文件

    先下载:xdoclet-plugins-dist-1.0.4-bin build.xml文件 <?xml version="1.0" encoding="UTF-8 ...

  6. 使用 hibernate 根据映射文件生成数据库表

    为了更好的显示效果,可以在hibernate.cfg.xml配置文件的<session-factory>标签里加入以下内容: 显示sql语句和格式化显示sql语句: <propert ...

  7. Hibernate的映射文件中基于主键的双向1对1的关联

    1.Hibernate中采用基于主键的映射策略是,有一端(任意一端)的主键生成策略要是foreign,根据对方的主键来生成自己的主键,它的实体不能拥有自己的主键生成策略,如我的配置文件: <?x ...

  8. hibernate之映射文件VS映射注解

    前言 对于java开发者而言,注解应该不是一个陌生的概念,早在JavaSE阶段,例如@Override标记重写父类方法或实现接口方法,@Test标记单元测试方法,所以我们可以简单地把它理解为一种有特殊 ...

  9. Hibernate(2)映射文件Xxx-hbm.xml

    1.Hibernate映射文件Xxx-hbm.xml ①POJO 类和关系数据库之间的映射可以用一个XML文档来定义.通过 POJO 类的数据库映射文件,Hibernate可以理解持久化类和数据表之间 ...

  10. Hibernate的映射文件配置

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

随机推荐

  1. OSS研究

    在以前没有毕业之前,做过了一个了播放器,其实就是mplayer的二次开发. 如果在这个播放器之上,加个oss作声音输入,那不就可以做个卡拉OK啦? 1.OSS的定义 OSS(Open Sound Sy ...

  2. BZOJ_1003_[ZJOI2006]_物流运输_(动态规划+最短路)

    描述 http://www.lydsy.com/JudgeOnline/problem.php?id=1003 m个码头,从1运货到m,n天每天运,其中有一些码头在特定的天里不能使用.运货的代价:在两 ...

  3. BZOJ2295: 【POJ Challenge】我爱你啊

    2295: [POJ Challenge]我爱你啊 Time Limit: 1 Sec  Memory Limit: 128 MBSubmit: 126  Solved: 90[Submit][Sta ...

  4. nodemon

    使用nodemon让node自动重启 开发环境,修改代码服务器自动重启 npm install -g nodemon nodemon app.js

  5. (转载)设计模式学习笔记(十一)——Facade外观模式

    (转载)http://www.cnblogs.com/kid-li/archive/2006/07/10/446904.html Facade外观模式,是一种结构型模式,它主要解决的问题是:组件的客户 ...

  6. 应用程序域 z

    应用程序域(AppDomain)已经不是一个新名词了,只要熟悉.net的都知道它的存在,不过我们还是先一起来重新认识下应用程序域吧,究竟它是何方神圣. 应用程序域 众所周知,进程是代码执行和资源分配的 ...

  7. 判斷作業系統為 64bit 或 32bit z

    有時我們在開發Windows 桌面應用程式時,會發生一些弔詭的事情,作業系統位元數就是一個蠻重要的小細節,若您寫的應用程式在Windows 的32bit 作業系統上可以完美的運行,但不見得在64bit ...

  8. HttpServletRequest、request常用方法、request常见应用、请求转发、RequestDispatcher

        HttpServletRequest对象代表客户端的请求,当客户端通过HTTP协议访问服务器时,HTTP请求头中的所有信息都封装在这个对象中,开发人员通过这个对象的方法,可以获得客户这些信息. ...

  9. Microsoft SQL Server 2008 安装图解(Windows 7)

    简介 本文详细记录了一次完整的Microsoft SQL Server 2008在Windows 7操作系统上的安装过程.注意:Microsoft SQL Server 2008与Windows 7操 ...

  10. python导入上级目录中的模块

    python导入同级别模块很方便: import xxx 要导入下级目录页挺方便,需要在下级目录中写一个__init__.py文件 from dirname import xxx 要导入上级目录,可以 ...