hibernate中对集合属性的操作
在hibernate中,持久化对象中不仅仅有基本数据类型与类类型的属性,也有List,Map,Set,collection等集合属性。但是在这些属性使用中,最好使用的是接口。
Set集合操作:
配置:在Xxx.hbm.xml中<set></set>中配置相关的属性
在<set></set>中常用的标签属性与子元素:
name属性:持久化对象中的set属性的属性名对应
table属性:新建保存该set集合数据的数据表名
key:子元素:在数据库总保存set数据的key/id
element子元素:保存set属性的数据标签,同长都要设置type类型
例子:
<!-- 配置set属 :name值为持久化类中的set的属性名 ,table为保存set的表名 --> <set name="students" table="stus"> <!-- 外键 --> <key column="stu_id"></key> <!-- set保存对象的数据元素,必须指明数据的类型且字符串要用小写 --> <element column="students" type="string"></element> </set>
配置接收之后就可以像一般简单的持久化对象类一样操作数据库了。
List集合操作:
List集合操作与set的操作基本一致。在Xxx.hbm.xml文件中配置了<list></list>标签
<list></list>标签常用的属性与子元素:
name属性:持久化对象中的List属性的属性名对应
table属性:新建保存该集合数据的数据表名
key:子元素:在数据库总保存list数据的key/id
element子元素:保存list属性的数据标签,同长都要设置type类型
list-index:子元素:保存在list的属性保存数据的下标索引
Xxx.hbm.xml文件配置List标签实例
<!-- 配置list属性。name为持久化对象的属性名 table为保存该属性数据的表名 --> <list name="hobbys" table="hobbys_list"> <key column="hobbys_id"></key> <!-- 索引 --> <list-index column="position"></list-index> <!-- 报list属性的数据字段 需要制定类型 --> <element type="string" column="hobbys"></element> </list>
Collection集合的操作:
Collection集合属性在hibernate中的操作也是跟set等操作基本一致。在Xxx.hbm.xml中以<bag></bag>获取是<idbag></idbag>标签中配置。两者标签都能配置Collection属性,但是还是会不一样的。
主要的区别:使用<bag></bag>标签时候,在使用hibernate修改Collection属性的表时候,会吧所用数据先删除,在添加不该删除的元素。而<idbag></idbag>则不会
Collection的常用属性与子元素:
name属性:持久化对象中的set属性的属性名对应
table属性:新建保存该set集合数据的数据表名
key:子元素:在数据库总保存set数据的key/id
element子元素:保存set属性的数据标签,同长都要设置type类型
Collection_id子元素:只能用于<idbag></idbag>标签。添加Collection属性表的id
Xxx.hbm.xml中的配置实例:
<bag>
<bag name="hobby" table="hobby_collection_bag"> <key column="hobby_id_bag"></key> <element type="string" column="hobbys"></element> </bag>
<idbag>
<idbag name="hobby" table="hobby_collection"> <collection-id type="string" column="ho_id"> <generator class="uuid"></generator> </collection-id> <key column="hobby_id"></key> <element type="string" column="hobby"></element> </idbag>
Map集合的操作:
map属性使用也没有多大的差别,在Xxx.hbm.xml中,使用<map></map>标签配置
<map></map>的常用属性与子元素:
name属性:持久化对象中的map属性的属性名对应
table属性:新建保存该map集合数据的数据表名
key:子元素:在数据库总保存set数据的key/id
element子元素:保存map属性的数据标签,同长都要设置type类型
map-key子元素:map中保存数据的key
Xxx.hbm.xml配置实例:
<map name="hobby" table="hobby_map"> <key column="name"></key> <map-key column="hobby_mapkey" type="string"></map-key> <element column="hobby" type="string"></element> </map>
如果,集合封装的对象是自定义的javabean对象,则是把上面的<element></element>标签换成<one-to-many></one-to-many>在class属性中指定类类名时候,填写的是全路径即可
相关推荐
SSH框架,全称为Spring、Struts和Hibernate,是Java Web开发中的一个经典组合。这个框架集合了Spring的IoC(Inversion of Control)和AOP(Aspect Oriented Programming)功能,Struts的MVC(Model-View-Controller...
SSH框架,全称为Spring、Struts和Hibernate,是Java Web开发中常见的三大开源框架的组合。这个框架集合提供了模型-视图-控制器(MVC)的设计模式,使得开发者能够更高效地构建动态网站和企业级应用程序。在这个组合...
在Hibernate中,对象被映射到数据库表,属性对应于列,使得数据库操作变得简单。 Hibernate支持CRUD(创建、读取、更新、删除)操作,实体关系映射,事务管理,以及性能优化策略。在SSH中,Hibernate作为数据层,...
- **一对多映射**:一般通过集合属性实现,其中“一”的一方持有一个集合,该集合包含了“多”的一方的多个实例。 - **多对多映射**:通常需要一个关联表来存储两个实体之间的关系。Hibernate支持通过`@ManyToMany`...
### SSH经典面试题目集合 #### 1. Hibernate工作原理及为何使用? - **工作原理**: - **读取并解析配置文件**:在启动应用时,Hibernate会首先读取`hibernate.cfg.xml`配置文件,该文件包含了连接数据库的基本...
Hibernate 是一个强大的Java持久化框架,它为开发者提供了一种在关系数据库与对象模型之间进行映射的工具,使得在Java应用中操作数据库变得更加简单。SSH(Struts、Spring、Hibernate)是Java开发中常见的三大框架,...
SSH框架,全称为Struts2、Spring和Hibernate的组合,是Java Web开发中常见的三大开源框架集成。这个框架集合提供了模型-视图-控制器(MVC)架构模式,用于简化企业级应用程序的开发流程,提高代码的可维护性和可重用...
这个"hibernate4 全部jar包"集合包含了Hibernate 4框架运行所需的所有依赖库,确保开发者可以方便地整合到SSH项目中。 在Hibernate 4中,主要涉及以下几个核心知识点: 1. **对象关系映射(ORM)**:Hibernate允许...
在下载并解压后的"使用说明.txt"文件中,可能会包含如何将这些jar文件添加到项目的类路径、配置Hibernate的属性文件(如hibernate.cfg.xml)、创建实体类、编写映射文件(.hbm.xml)、使用Session工厂和Session进行...
通过这些实例,开发者可以学习到如何在实际项目中应用Hibernate,理解其核心机制,并提高数据库操作的效率。熟悉这些映射方式对于开发复杂的Java应用至关重要,它们帮助我们将复杂的数据库结构转化为易于管理和操作...
在Hibernate2中,延迟加载主要应用于实体对象和集合对象。而从Hibernate3开始,增加了属性的延迟加载功能。 3. 类之间关系的实现: Hibernate通过配置文件中的映射信息来实现类之间的关系,比如一对多、多对多的...
SSH框架,全称为Struts、Spring和Hibernate,是Java Web开发中的一个经典组合。这个框架集合为开发者提供了模型-视图-控制器(MVC)架构的支持,数据持久化的能力,以及依赖注入和面向切面编程的功能。下面我们将...
**可能原因**:该错误表示Hibernate尝试从数据库中查询一个不存在的字段,通常是由于实体类属性名与数据库字段名不一致导致的。 **解决方案**: 1. **检查实体类属性名**:确认实体类中的属性名与数据库表中的字段...
SSH(Secure Shell)是一种网络协议,用于在不安全...同时,随着技术的发展,现代Java开发中可能更多地转向Spring Boot,它简化了配置并集成了许多依赖,但SSH仍然是理解Web应用架构和学习Java EE基础知识的重要途径。
SSH面试题涵盖了Java、Struts、Hibernate等核心Java Web开发技术。以下是针对这些面试题的详细解答: 1. **Hibernate工作原理及为何使用**: Hibernate通过封装JDBC,实现了对象关系映射(ORM),使得开发人员可以...
在 JSP 代码中,我们使用了 SSH 框架中的 Hibernate 框架来实现数据的持久化操作。在这里,我们使用了 OpenSessionInViewFilter 来实现 Hibernate 的 Session 的管理。同时,我们还使用了 JQuery 库来实现 JSON 数据...
SSH面试题及框架集合主要涉及Java中的三大框架:Spring、Struts和Hibernate。这些框架是构建企业级Web应用程序的关键组成部分,常被合称为SSH。以下是对这些知识点的详细解释: **Struts框架** Struts是一个基于MVC...
【Java学习笔记、SSH学习笔记】是一份涵盖了Java Web开发中的关键技术和框架的资源集合,主要涉及了JSP(JavaServer Pages)、JSTL(JavaServer Pages Standard Tag Library)、EL(Expression Language)以及SSH...
Hibernate是一款开源的对象关系映射(ORM)框架,它允许Java开发者在关系数据库上进行面向对象的编程。...在SSH框架中,熟练掌握Hibernate能有效提升项目开发效率,确保数据操作的准确性和高效性。