`

自己创建 hibernate mapping

阅读更多

不一定要用 MyEclipse 的 Hibernate 框架生成数据库表的映射文件,其实很简单:
 
在 Eclipse 环境中,新建一个项目并添加 Hibernate 框架.
 
假设有两个表,分别是 MainClass 和 SubClass ,下面是两个表的表结构:(使用 MySQL 数据库)

Create   table  MainClass(
-- ID
MID  int  AUTO_INCREMENT  primary   key ,
-- main class name
MClsName  varchar ( 20 not   null )ENGINE = MyISAM  DEFAULT  CHARSET = utf8;

Create   table  SubClass(
-- sub class ID
SID  int  AUTO_INCREMENT  primary   key ,
-- sub class name
SClsName  varchar ( 20 not   null ,
-- main class ID (外键)
MID  int   not   null )ENGINE = MyISAM  DEFAULT  CHARSET = utf8;

现在来创建 MainClass 的类 MainClass.java,代码如下:

 

public   class  MainClass  ... {
    
private   int  mainClsId;
    
private  String mainClsName;

    
//  mainClsId Getter and Setter
     public   int  getMainClsId()  ... {
        
return  mainClsId;
    }

    
public   void  setMainClsId( int  mainClsId)  ... {
        
this .mainClsId  =  mainClsId;
    }


    
//  mainClsName Getter and Setter
     public  String getMainClsName()  ... {
        
return  mainClsId;
    }

    
public   void  setMainClsName(String mainClsName)  ... {
        
this .mainClsName  =  mainClsName;
    }

}



// SubClass.java,代码如下:
public   class  SubClass  ... {
    
private   int  subClsId;
    
private  String subClsName;
    
private   int  mainClsId;
    
private  MainClass mainClass;
    
    
//  mainClass Getter and Setter
     public  MainClass getMainClass()  ... {
        
return  mainClass;
    }

    
public   void  setMainClass(MainClass mainClass)  ... {
        
this .mainClass  =  mainClass;
    }

    
//  mainClsId Getter and Setter
     public   int  getMainClsId()  ... {
        
return  mainClsId;
    }

    
public   void  setMainClsId( int  mainClsId)  ... {
        
this .mainClsId  =  mainClsId;
    }

    
    
//  subClsId Getter and Setter
     public   int  getSubClsId()  ... {
        
return  subClsId;
    }

    
public   void  setSubClsId( int  subClsId)  ... {
        
this .subClsId  =  subClsId;
    }

    
    
//  subClsName Getter and Setter
     public  String getSubClsName()  ... {
        
return  subClsName;
    }

    
public   void  setSubClsName(String subClsName)  ... {
        
this .subClsName  =  subClsName;
    }

    
}

接着就是写 映射文件了,
MainClass.java 的映射文件 MainClass.hbm.xml

 

<? xml version="1.0" ?>
<! DOCTYPE hibernate-mapping PUBLIC "-//Hibernate/Hibernate Mapping DTD 3.0//EN"
"http://hibernate.sourceforge.net/hibernate-mapping-3.0.dtd"
>
<!--  
    Mapping file autogenerated by MyEclipse - Hibernate Tools
-->
< hibernate-mapping >
    
< class  name ="com.demo.model.MainClass"  table ="MainClass"  catalog ="test" >
        
< id  name ="mainClsId"  type ="integer" > <!-- name 是 MainClass.java 中的 mainClsId 属性 -->
            
< column  name ="MID"   /> <!-- name 是 MainClass 表中对应的列名 -->
            
< generator  class ="native"   />
        
</ id >
        
< property  name ="mainClsName"  type ="string" >
            
< column  name ="MClsName"  length ="20"  not-null ="true"   />
        
</ property >
    
</ class >
</ hibernate-mapping >

SubClass.java 的映射文件 SubClass.hbm.xml

 

<? xml version="1.0" ?>
<! DOCTYPE hibernate-mapping PUBLIC "-//Hibernate/Hibernate Mapping DTD 3.0//EN"
"http://hibernate.sourceforge.net/hibernate-mapping-3.0.dtd"
>
<!--  
    Mapping file autogenerated by MyEclipse - Hibernate Tools
-->
< hibernate-mapping >
    
< class  name ="com.demo.model.SubClass"  table ="SubClass"  catalog ="test" >
        
< id  name ="subClsId"  type ="integer" > <!-- name 是 SubClass.java 中的 subClsId 属性 -->
            
< column  name ="SID"   /> <!-- name 是 SubClass 表中对应的列名 -->
            
< generator  class ="native"   />
        
</ id >
        
< property  name ="subClsName"  type ="string" >
            
< column  name ="SClsName"  length ="20"  not-null ="true"   />
        
</ property >
        
<!-- 这里很重要 ,作用是声明这段是数据库表中的外键 -->
        
< property  name ="mainClsId"  column ="MID"   />
        
<!-- 这里的 column ,应该对应声明 外键的 name ,即 mainClsId ,而 name="mainClass" 就是 SubClass 里的一个属性 -->
                
< many-to-one  name ="mainClass"  column ="mainClsId"  
                        class
="com.demo.model.MainClass"  
                        lazy
="false"  
                        not-found
="ignore"  
                        cascade
="none"  
                        insert
="false"  
                        update
="false"   />
    
</ class >
</ hibernate-mapping >

好..最后一步就是在 hibenate 的配置文件中加上这两个 映射文件 地址就可以了

 

     < mapping  resource ="com/demo/model/MainClass.hbm.xml" ></ mapping >
    
< mapping  resource ="com/demo/model/SubClass.hbm.xml" ></ mapping >

 

大功告成~~~~ :)

 

来源:http://www.fish888.com/hibernate-mapping-t174284

分享到:
评论

相关推荐

    hibernate-mapping参数详解

    ### Hibernate Mapping 参数详解 在 Hibernate 中,为了将 Java 对象映射到数据库表,并实现对象关系映射(ORM),开发者需要定义一系列配置属性来指导 Hibernate 如何进行转换。本文将详细解析 `hibernate-mapping...

    hibernate-mapping

    Hibernate的动态映射允许在运行时创建实体类的映射,无需预先编写XML映射文件,这在某些场景下非常实用。 10. 性能优化 Hibernate提供了一系列性能优化策略,如二级缓存、批处理、延迟加载等,通过合理的配置和...

    hibernate-configuration-3.0.dtd、hibernate-mapping-3.0.dtd

    通过这些文件,我们可以精确地配置Hibernate以适应不同的项目需求,并且创建出符合规范的对象-关系映射,从而实现高效、灵活的数据库操作。在处理大型项目时,良好的Hibernate配置和映射设计不仅能提升开发效率,还...

    MyEclipse10.7由表自动生成Hibernate实体对象

    一旦数据库连接建立成功,可以继续添加Hibernate特性到JavaWeb项目中,以便使用Hibernate反向工程功能。具体步骤为: - 切换至MyEclipse Java Enterprise透视图视窗。 - 在项目上右键点击,选择MyEclipse-&gt;Add ...

    XDoclet插件包以及从Java持久化类生成hibernate mapping小例子

    此外,XDoclet还可以生成MySQL或其他数据库的创建脚本,帮助快速建立对应的数据库结构。 总结起来,这个例子展示了如何利用XDoclet插件从Java持久化类自动生成功能强大的Hibernate映射文件和数据库脚本,极大地简化...

    Java Dao JDBC Hibernate XMLmapping 代码

    Java DAO (Data Access Object)、JDBC (Java Database Connectivity)、Hibernate 和 XML mapping 是Java开发中用于数据库操作的重要技术。这些技术共同构成了一个强大的数据访问层,使得开发者能够高效、灵活地与...

    hibernate的dtd 包含hibernate.properties

    这些配置项让Hibernate知道如何与特定的数据库系统建立连接并进行通信。 接下来,我们来看`hibernate-configuration-3.0.dtd`。DTD是XML文档类型定义的缩写,它定义了一组规则,用于验证XML文件的结构是否正确。`...

    Hibernate's JPA.rar

    4. **HQL和Criteria API**:Hibernate有自己的查询语言HQL,与JPQL类似但功能更强大。Criteria API则提供了一种类型的API来构建动态查询。 5. **实体关系**:支持一对一、一对多、多对一、多对多等各种关系映射。 ...

    hibernate如何用O/R Mapping框架来实现我们的数据层

    - **查询语言**:除了传统的SQL查询,Hibernate还提供了自己的HQL(Hibernate Query Language)查询语言。 #### 四、Hibernate中的实体映射 以`User`类为例,下面展示了如何使用Hibernate进行实体映射: ```java ...

    hibernate实体映射文件字段设置默认值

    &lt;hibernate-mapping&gt; &lt;!-- 映射类的属性 --&gt; &lt;/hibernate-mapping&gt; ``` 这里的`&lt;class&gt;`标签表示映射到特定的Java类,其属性`name`指定了对应的Java类全名,而`table`和`schema`分别指定了数据库表名和模式名...

    Hibernate映射关系配置:XML方式和注解方式

    总结来说,本主题将深入探讨Hibernate框架下,如何通过XML映射文件和注解进行对象关系映射的配置,包括实体类的设计、字段映射、关联关系的建立,并可能结合具体代码实例进行解析,帮助读者理解并掌握这两种映射方式...

    Hibernate O/R Mapping 入门工程包

    **Hibernate O/R Mapping 入门工程包** 在Java开发领域,Hibernate是一个强大的对象关系映射(Object-Relational Mapping,简称ORM)框架,它能够帮助开发者将数据库操作转化为面向对象的编程,从而降低了数据库和...

    hibernate配置文件详解

    这些配置项是 Hibernate 建立对象关系映射所需的基本信息。 Hibernate 配置文件是其核心组件之一,用于定义 Hibernate 的运行期参数。通过 hibernate.cfg.xml 和 .hbm.xml 文件,我们可以定义 Hibernate 的基本连接...

    Eclipse 配置Hibernate3 插件,生成mapping 和java

    ### Eclipse 配置 Hibernate3 插件,生成 Mapping 和 Java #### 一、概述 本文主要介绍如何在 Eclipse IDE 中配置 Hibernate3 插件,并利用该插件自动生成数据库映射文件(Mapping)及对应的 Java 实体类。通过这...

    Hibernate完整使用教程

    Gavin King 于 2001 年创建了 Hibernate 项目,旨在提供一种简洁的方式来访问关系数据库。 POJO POJO(Plain Old Java Object)是 Java 语言中的一个概念,指的是一种简单的 Java 对象。POJO 是 Hibernate 的核心...

    bootstrap、spring mvc、hibernate、spring开发超市后台管理系统源代码下载

    本项目是一个基于Java技术栈,使用Bootstrap、Spring MVC、Hibernate和Spring框架开发的超市后台管理系统。这个系统的主要目的是实现对超市商品、库存、订单、客户等业务数据的有效管理和控制,提供了一个直观、高效...

    hibernate 无主键表映射

    例如,创建一个新的订单: ```java OrderKey key = new OrderKey(); key.setCustomerId("123"); key.setOrderId("456"); Order order = new Order(); order.setKey(key); session.save(order); ``` 通过以上的...

    Hibernate3.2EnumTypeMapping-demo.zip

    通过"Hibernate3.2EnumTypeMapping-demo.zip"中的示例代码,你可以深入学习和理解这些概念,并实践在自己的项目中。这将帮助你更好地利用Hibernate处理枚举类型,提高代码质量,减少潜在的运行时错误。

Global site tag (gtag.js) - Google Analytics