`
s929498110
  • 浏览: 106577 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

Hibernate的动态模型

阅读更多

 

 

 

简介

      Hibernate中持久化实体没有必要一定是POJO或者JavaBean对象。 Hibernate也支持动态模型进行持久化实体和数据库之间的映射。 官方文档(3.6)说“此功能正在试验中,也许会在未来版本中发生变化”,现在4.0也出了, 不知道是否发生了变化

 

      动态模型就是完全抛弃了 Java 类的定义, 仅仅定义映射文件即可, 然后在程序中直接使用 Map 进行实体的操作(有一点像结构体那样额。。。)。

 

      动态映射的好处(官方文档):数据变化所需要的时间少了,因为原型不需要实现实体类。你无法进行编译期的类型检查 ,并可能由此会处理很多的运行期异常。但是有了 Hibernate 映射,它使得数据库的 schema 能容易的规格化和合理化,并允许稍后在此之上添加合适的领域模型实现。

 

实例:

 

比如需要一个Person类

package chapter4.model;

public class Person {

	private int id;
	private int age;
	private String name;

	// setter、getter省略

}

 

如果使用动态映射的话,就不需要再编写这个Person类, 只需要编写一个动态映射XML即可

<hibernate-mapping>
	<!-- 此处不需要类名,和包名 -->
	<class entity-name="PersonEntity" table="person_entity">
		<id name="id" type="integer">
			<generator class="native"/>
		</id>
		<property name="age" type="integer"/>
		<property name="name" type="string"/>
	</class>
</hibernate-mapping>

 

然后在程序中直接使用Session进行通过Map进行实体操作:

SessionFactory sf = HibernateUtil.SF;
Session session = sf.getCurrentSession();
session.beginTransaction();
// 通过Map映射实体与数据库
Map test = new HashMap();
test.put("age", new Integer(20));
test.put("name", "动态映射测试");
session.save("PersonEntity", test);
// 运行结果: Hibernate: insert into PersonEntity (age, name) values (?, ?)

session.getTransaction().commit();
session.close();

 

 

问题是通过动态映射存入数据方便了点, 但是从数据取出数据好像比较难以操作额。

 

不知道有没有人具体用过这个功能??? 

 

 

 

 

分享到:
评论

相关推荐

    hibernate动态映射表处理oracle的clob类型

    本主题“hibernate动态映射表处理Oracle的CLOB类型”主要聚焦于如何在Hibernate中有效地管理和操作CLOB字段。在Oracle 10g中,CLOB数据类型的处理有时会遇到一些挑战,尤其是在与ORM框架结合使用时。以下将详细介绍...

    hibernate实现动态SQL查询

    本篇文章主要探讨如何利用Hibernate实现动态SQL查询,结合XML配置和FREEMARKER模板引擎来生成执行的SQL语句。 一、Hibernate简介 Hibernate作为一款强大的持久层框架,它简化了Java应用程序与数据库之间的交互。...

    hibernate E-R模型关系配置

    本话题将深入探讨如何利用Hibernate配置E-R(实体-关系)模型,并将其转换为实际的数据表结构。 E-R模型是数据库设计中的一个重要概念,它用于描述现实世界中的实体、属性以及实体之间的关系。在Hibernate中,我们...

    Spring Data JPA/Hibernate 运行期动态模型、动态实体建表、动态字段查询的方式

    涉及到动态生成表结构,动态生成模型实体类动态查询表字段等等,经过调研发现hibernate在这方面是很方便的,调用内置API就能完成系列操作,下面贴出核心代码: /** * @author cjbi */ public class DynamicDdlTest...

    hibernate中的对象关系模型

    在Java持久化框架Hibernate中,对象关系模型(Object-Relational Mapping,ORM)是将数据库中的数据映射到Java对象的技术。它使得开发者能够用面向对象的方式来操作数据库,简化了数据库编程的过程。以下是对...

    Hibernate动态建表

    "Hibernate动态建表"指的是在应用运行时根据实体类自动生成对应的数据库表结构,这种特性在开发过程中特别有用,尤其是当数据模型频繁变化或者需要快速原型设计时。 **动态表映射原理** Hibernate的动态建表功能...

    Struts1.2+Hibernate学习模型

    在"Struts1.2+Hibernate学习模型"中,"demo"可能是一个示例项目,它包含以下组成部分: 1. **Action类**:每个Action类对应一个用户操作,负责处理请求并调用相应的Service层方法。 2. **Service层**:业务逻辑处理...

    struts +hibernate 动态action 的以个网站实列 包含数据库

    在这个网站实例中,"struts +hibernate 动态action"的结合展示了如何利用这两个框架构建一个动态、数据驱动的Web应用程序。 Struts是一个开源的MVC框架,它简化了Java Servlet和JSP的应用开发。在Struts中,Action...

    hibernate-extensions和Middlegen-Hibernate

    例如,当你已经有了一个完整的数据库结构,只需要运行Middlegen-Hibernate,就可以得到一套完整的Java持久化模型,再配合hibernate-extensions,可以直接将这些模型同步到数据库,或者更新数据库以适应模型的变化。...

    Hibernate完整使用教程

    hibernate-mapping 文件中定义了对象模型、关系模型、映射关系等信息。 class class 是 Hibernate 中的一个重要概念,用于定义对象模型。class 可以通过 Java 类或 XML 文件来定义。 id id 是 Hibernate 中的一...

    hibernate学习资料大全

    Hibernate 提供了一种将Java对象模型与关系数据库之间的映射机制,使得开发者可以使用面向对象的方式来操作数据库,而无需关心底层SQL语句。理解ORM的概念是学习Hibernate的第一步。 2. **Hibernate配置**: 在...

    hibernate3 hibernate3

    它是对象关系映射(ORM)工具的典范,允许开发人员使用面向对象的编程模型来操作数据库,而无需直接编写SQL语句。在本篇文章中,我们将深入探讨Hibernate3的核心概念、主要功能以及如何在实际项目中应用。 一、...

    hibernate必要的jar包

    8. **cglib-nodep.jar**或**asm.jar**:这两个库之一通常用于为没有接口的类创建代理对象,这是Hibernate动态生成代理类的一种方式。 9. **antlr.jar**:ANTLR是一个强大的解析器生成器,Hibernate使用它来解析HQL...

    hibernate3必要jar包

    Hibernate3 是一个非常重要的Java持久化框架,它允许开发者将对象模型与数据库关系模型进行映射,从而简化了数据存取的过程。这个压缩包“hibernate3必要jar包”显然是针对Hibernate3版本的,已经去除了冗余的库文件...

    hibernate annotation hibernate3

    Hibernate 3中的注解机制使得开发者能够更直观地在Java类中描述数据库模型,减少了XML配置文件的使用,提升了开发效率。通过熟练掌握这些注解,开发者可以更好地运用Hibernate进行数据持久化操作,实现高效、灵活的...

    Hibernate实战

    ORM(Object-Relational Mapping)是将关系数据库的数据模型映射到面向对象的模型上,使得开发者可以使用面向对象的方式进行数据库操作。Hibernate通过XML或注解方式定义映射,将Java类和数据库表关联起来,简化了...

    Middlegen-Hibernate-r5,hibernate-extensions-2.1.3

    使用Middlegen,开发者可以快速地将数据库结构转化为可直接使用的Hibernate实体模型,提高开发效率。 【Hibernate Extensions】则是对标准Hibernate库的扩展,提供了额外的功能和便利。版本2.1.3可能包含了一些特定...

    hibernate-release-5.2.10.Final

    JPA(Java Persistence API)元模型生成器是Hibernate 5.2.10.Final中的一个重要组件,它能自动生成JPA实体类的元模型,帮助开发者减少手动编写元模型代码的工作量。元模型是JPA中的一个重要概念,它包含了实体类的...

    hibernate第一个hibernate

    它的核心理念是将面向对象的模型映射到传统的关系数据库上,从而减轻了开发工作量。 2. 安装与配置: 在开始第一个Hibernate项目之前,你需要下载Hibernate的JAR包,并将其添加到项目的类路径中。同时,还需要配置...

    Hibernate 中文api 等学习资料

    Hibernate是一个开源的对象关系映射(ORM)框架,它允许Java开发者将数据库操作与对象模型无缝结合。通过Hibernate,开发者可以避免编写大量的SQL语句,提高开发效率,同时使代码更加可读和易于维护。它支持多种...

Global site tag (gtag.js) - Google Analytics