当前位置:首页 > 开发 > 编程语言 > Hibernate > 正文

软件架构平台技术---Hibernate属性映射

发表于: 2014-10-20   作者:come_for_dream   来源:转载   浏览次数:
摘要:    软件架构平台技术---Hibernate属性映射      好久没写博客了,一直在忙于一些华而不实的东西,在结束了看似光鲜却真的没有脚踏实地的东西后,就要静下心来整理一下上个学期学习的一些知识点。    首先我来回顾一下hibernate框架,这个框架是迷迷糊糊就大概知道怎么用了,但是却没有踏踏实实的

   软件架构平台技术---Hibernate属性映射

 

   好久没写博客了,一直在忙于一些华而不实的东西,在结束了看似光鲜却真的没有脚踏实地的东西后,就要静下心来整理一下上个学期学习的一些知识点。

   首先我来回顾一下hibernate框架,这个框架是迷迷糊糊就大概知道怎么用了,但是却没有踏踏实实的全面了解它。

   首先hibernate是一个ORM框架,访问数据库是整个J2EE必不可少的部分,目前依然使用关系型数据来保存数据。用java语言设计的程序是面向对象(Object)的,而持久数据是存储在关系型数据库(Relation)中的,所以需要一种映射机制(Mapping)

   首先什么是ORM

 

      ORM(对象-关系映射):

      完成对象数据到关系型数据映射的机制称为对象-关系映射,简称ORM

 

   目前持久化的技术主要有三种:

1.传统的JBDC方案

2.半自动ORM框架(MyBatis

3.全自动ORM框架(Hibernate

   传统的JDBC直接在SQL层面进行关系型数据库的操作,所以其有很高的性能,执行基于数据集的操作,但是JDBC是一个底层API,操作它会非常麻烦,为了保证正确的数据库操作和性能,需要使用大量捕获异常和释放资源的代码。

------------------------------------上面是Hibernate的一些简单介绍-------------------------

    hibernate为我们提供了数据库层操作层面上一整套的解决方案,本人实在没有系统学习的情况下直接拿来用的导致于有些使用细节上并没有把握好,现在就类的属性和表的字段的映射上面做一些笔记。

  1. 普通属性的映射在**.hbm.xml中的写法是
    <property name="" type="" column="" length="" not-null="">
     其中name是必须要有的,像是文本格式的数据库text字段等特殊字段还是要设置一下type属性的
  2. 主键映射   
    <id name="adminId" type="integer">
    	<column name="adminId" />
    	<generator class="native" />
    </id>

     这里<generator>属性是主键的生成策略这里不做细致讨论
  3. 组成关系映射,也就是设计模式中的组合模式,代码如下面的样纸
    package com.zdx.domain;
    
    public class User {
    	private Integer id;
    	private String name;
    	private Address address;
    
    	public User() {
    	}
    
    	public Integer getId() {
    		return id;
    	}
    
    	public void setId(Integer id) {
    		this.id = id;
    	}
    
    	public String getName() {
    		return name;
    	}
    
    	public void setName(String name) {
    		this.name = name;
    	}
    
    	public Address getAddress() {
    		return address;
    	}
    
    	public void setAddress(Address address) {
    		this.address = address;
    	}
    
    }
     

 

package com.zdx.domain;
public class Address {
	private String provice;
	private String city;
	private String street;

	public String getProvice() {
		return provice;
	}

	public void setProvice(String provice) {
		this.provice = provice;
	}

	public String getCity() {
		return city;
	}

	public void setCity(String city) {
		this.city = city;
	}

	public String getStreet() {
		return street;
	}

	public void setStreet(String street) {
		this.street = street;
	}

}

 

 这里在User类中包含了一个Address的对象,所以这种常用的组合模式在User.hbm.xml配置文件中的配置如下:

<componment name="address" class="com.zdx.domain.Address">
    <property name="province></property>
    <property name="city></property>
    <property name="street></property>
</<componment>

 

 4.Set集合映射

   

<set name="" table="">

          <key colemn=""/>

          <element column="" type="">

    </set>

 

当然还有List、Map、array、Bag.

这里还会涉及到关联关系(实体类型的集合映射)

    一对多、多对一

    多对多、一对一

 这些内容在以后讲

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

软件架构平台技术---Hibernate属性映射

  • 0

    开心

    开心

  • 0

    板砖

    板砖

  • 0

    感动

    感动

  • 0

    有用

    有用

  • 0

    疑问

    疑问

  • 0

    难过

    难过

  • 0

    无聊

    无聊

  • 0

    震惊

    震惊

编辑推荐
普通属性指的是基本数据类型及其包装类型、java.lang.String、java.util.Date。 Hibernate使用<p
Hibernate如何保存结合属性? Hibernate会将集合属性中的内容保存在一个从表中,并通过外键列与主表
Hibernate如何保存组件属性? 对于组件中基本数据类型及其包装类型、String、Date类型的属性,Hiber
<!-- [if gte vml 1]><v:shapetype id="_x0000_t75" coordsize="21600,21600" o:spt="75"
<!-- [if gte vml 1]><v:shapetype id="_x0000_t75" coordsize="21600,21600" o:spt="75"
前路漫漫,但不要迷茫,一步一步走,只要我不停下,我就可以走很远。 ~~~~~~~与汝共勉。(一个程序
软件开发架构平台技术-------Struts框架的第一次使用 伟大团队的灵魂在于,它们可以让杰出的个体一
OGNL访问web容器对象中值 虽然将我们要在向前台传送数据的时候将数据作为Action的属性利用Struts2提
五、<property>标签 用于映射普通属性到表字段 <property>元素为类定义了一个持久化的,
再利用hibernate向其添加数据代码如下: /** * hibernate向数据库添加数据 */ <p class="MsoNorm
版权所有 IT知识库 CopyRight © 2009-2015 IT知识库 IT610.com , All Rights Reserved. 京ICP备09083238号