首页 > 数据库 > mysql教程 > Hibernate的映射机制

Hibernate的映射机制

WBOY
发布: 2016-06-07 16:42:31
原创
977 人浏览过

对象关系映射(Object Relation Mapping(ORM))是一种为了解决面向对象与面向关系数据库互不匹配现象的技术,简而言之ORM是通过使用

Hibernate的映射机制

对象关系映射(Object Relation Mapping(ORM))是一种为了解决面向对象与面向关系数据库互不匹配现象的技术,简而言之ORM是通过使用描述对象之间映射的元数据,将java程序中的对象自动持久化到关系数据库中,这种映射机制从本质上来说其实就是将数据从一种形式转化为另一种形式


Hibernate的基本映射数据类型
Hibernate的基本映射数据类型是java基本类型与标准SQL类型相互转化的桥梁,其关系
java类型----------->Hibernate的映射数据类型----------->标准SQL类型
通过Hibernate的基本映射数据类型可以非常方便地将数据从一种形式转化成另一个形式,完成高质量的ORM任务
...

column="password"
type="string"
...
>


datamap数据表
-----------------------------------------------------------------------------------------------
字段名称 数据类型 主键 自增 允许为空描述
ID int(4) 是 增1 否ID号
MYBOOLEAN bit(1)逻辑型数据
MYINT int(5) 整型数据
MYLONG bigint(11)长整型数据
MYFLOAT float(8,2)单精度浮点型数据
MYDOUBLE double(10,2)双精度浮点型数据
MYDECIMAL decimal(10,2)Decimal型数据
MYSTRING varchar(100)字符串数据
MYTEXT text Text型数据
MYDATE date Date型数据
MYTIME time Time型数据
MYDATETIME datetimeDatetime型数据
MYTIMESTAMP timestampTimestamp型数据
MYBINARY varbinary(10240)Binary型数据
MYBLOB longblobBlob型数据
------------------------------------------------------------------------------------------------
其对应的持久化类Datamap.java
com.hephec.orm
import java.io.Serializable


public class Datamap implements Serializable{
private int hashValue=0;
private Integer id;
private Boolean myboolean;
private Integer myint;
private Long mylong;
private Float myfloat;
private Double mydouble;
private BigDecimal mydecimal;
  private String mytext;
private String mytext;
private Date mydatel;
private Time mytime;
private Date mydatetime;
private Timestamp mytimestamp;
private byte[] mybinary;
private Blob myblob;
private Datamap(){}//构造方法
//getter...setter省略
}
datamap表与Datamap类的ORM映射文件Datamap.hbm.xml





















(1)创建数据访问DAO接口TestDAO.java
package com.DAO;
import com.ORM.*;
public interface TestDAO{
public void addDatamap(Datamap datamap);
public Datamap loadDatamap(Integer id);
public void delDatamap(Integer id);
}


(2)创建数据访问DAO接口实现TestDAOImpl.java
package com.DAO;
import com.ORM.*;
import org.hibernate.*;
public class TestDAOImpl 实现 TestDAO{
public void addDatamap(Datamap datamap){
Session session=MySessionFactory.currentSession();
事务 ts=null;
try{
ts=session.beginTransaction( );
session.save(datamap);
ts.commit();
}catch(异常 e){
if(ts!=null){
ts.rollback() ;
}
e.printStackTrace();
}最后{
MySessionFactory.closeSession();
}
}
公共数据映射loadDatamap(Integer id){


会话 session=MySessionFactory.currentSession();
事务 ts=null;
尝试{
ts=session.beginTransaction();
datamap=(Datamap)session.get (Datamap.class,id);
ts.commit();
}catch(异常 e){
if(ts!=null){
ts.rollback();
}
e.printStackTrace();
}最后{
MySessionFactory.closeSession();
}
返回数据映射;
}
public void delDatamap(Integer id){
会话 session=MySessionFactory.currentSession();
事务 ts=null;
尝试{
ts=session.beginTransaction();
数据映射 datamap=(Datamap)session.load(Datamap .class,id);
session.delete(datamap);
ts.commit();
}catch(异常 e){
if(ts!=null){
ts .rollback();
}
e.printStackTrace();
}最后{
MySessionFactory.closeSession();
}
}
}
(3 ) 创建一个临时测试用的 TestBean.java
package com.bean;
import com.ORM.*;
import java.io.*;
import java.math.BigDecimal;
导入 java.net.*;
导入 org.hibernate.*;

相关标签:
来源:php.cn
本站声明
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn
最新问题
热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板