资源预览内容
第1页 / 共16页
第2页 / 共16页
第3页 / 共16页
第4页 / 共16页
第5页 / 共16页
第6页 / 共16页
第7页 / 共16页
第8页 / 共16页
第9页 / 共16页
第10页 / 共16页
亲,该文档总共16页,到这儿已超出免费预览范围,如果喜欢就下载吧!
资源描述
Java的Hibernate框架中集合类数据结构的映射编写教程Hibernate可以将Java中几个内置的集合结构映射为数据库使用的关系模型,下面我们就来看一下Java的Hibernate框架中集合类数据结构的映射编写教程:一、集合映射1.集合小介集合映射也是基本的映射,但在开发过程中不会经常用到,所以不需要深刻了解,只需要理解基本的使用方法即可,等在开发过程中遇到了这种问题时能够查询到解决方法就可以了。对应集合映射它其实是指将java中的集合映射到对应的表中,是一种集合对象的映射,在java中有四种类型的集合,分别是Set、Map、List还有普通的数组,它们之间有很大的区别:(1)Set,不可以有重复的对象,对象是无序的;(2)List,可以与重复的对象,对象之间有顺序;(3)Map,它是键值成对出现的;(4)数组,可以重复,对象之间有顺序。它们之间的区别决定了在开发时使用哪种集合,通常在开发时会使用Set,它内部的对象是无需的,并可以使用迭代器获取内部对象。这几种集合想要映射到相应的关系模型的话就必须使用Hibernate提供的映射标签,、。2.映射小介继续讨论集合映射的关系模型,集合映射是指一个对象对应着另一个对象集合,在保存时Hibernate会把数据集合保存到相应的表中,并按照自己分配的id把数据保存到数据表中,如果单独为集合分配了新表,那么会将id分配给集合表的id,那么对应的关系表如下图:3.类文件集合映射是如何通过代码实现的,接下来具体分析。这里把所有的集合封存到一个类中,这个类我们称之为CollectionMapping.java,那么它对应的内部代码如下:123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263package com.hibernate; import java.util.List; import java.util.Map; import java.util.Set; SuppressWarnings(rawtypes) public class CollectionMapping /id private int id; public int getId() return id; public void setId(int id) this.id = id; /名字 private String name; public String getName() return name; public void setName(String name) this.name = name; /Set集合 private Set setValues; public Set getSetValues() return setValues; public void setSetValues(Set setValues) this.setValues = setValues; /List集合 private List listValues; public List getListValues() return listValues; public void setListValues(List listValues) this.listValues = listValues; /数组集合 private String arrayValues; public String getArrayValues() return arrayValues; public void setArrayValues(String arrayValues) this.arrayValues = arrayValues; /Map集合 private Map mapValues; public Map getMapValues() return mapValues; public void setMapValues(Map mapValues) this.mapValues = mapValues; 该类中封装了几种常用的集合,想要转化为关系模型,就必须来看下文的映射。4.集合映射集合的映射其实相当的简单,只需要添加对应的集合标签,Hibernate分别提供了集合标签、,通过使用集中标签来将集合映射为对应的关系表,另外通过添加标签来实现表外键的关联,其它的属性通过使用来添加。CollectionMapping.hbm.xml1234567891011121314151617181920212223242526272829303132 需要注意的是list标签和array标签,这两种集合内的对象是有顺序的,所以在添加映射标签时需要使用list-index或者index标签来标明对象的顺序,而且在添加子标签时一定要按照顺序添加,也就是说先添加标签,后添加标签,最后添加标签,否则的话会出现如下错误:The content of element type list must match (meta*,subselect?,cache?,synchronize*,comment?,key,(index|list-index),(element|one-to-many|many-to-many|composite-element|many-to-any),loader?,sql-insert?,sql-update?,sql-delete?,sql-delete-all?,filter*).5.关系模型将配置好的对象模型转化为相应的关系模型,生成的SQL语句如下:123456789101112131415161718alter table t_array_value drop foreign key FK2E0DD0C067676B68 alter table t_list_values drop foreign key FKE01EC98BF4FCB03 alter table t_map_values drop foreign key FKD169BA107402B585 alter table t_set_values drop foreign key FK7BB8D04A7E79F8BF drop table if exists t_array_value drop table if exists t_collection_mapping drop table if exists t_list_values drop table if exists t_map_values drop table if exists t_set_values create table t_array_value (array_id integer not null, array_value varchar(255), array_index integer not null, primary key (array_id, array_index) create table t_collection_mapping (id intewww.visa158.comull auto_increment, name varchar(255), primary key (id) create table t_list_values (list_id integer not null, list_value varchar(255), list_index integer not null, primary key (list_id, list_index) create table t_map_values (map_id integer not null, map_value varchar(255), map_key varchar(255) not nu
网站客服QQ:2055934822
金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号