详解Java的Hibernat框架中的Map映射与SortedMap映射

时间:2021-05-19

Map映射
Map映射是一个java集合存储在键 - 值对的元素,并且不允许在列表中重复的元素。 Map接口提供三种collection视图,允许Map内容看作是一组键-值集合,或者设置键 - 值映射关系。

Map被映射到映射表中一个<map>元素和无序的地图可以在java.util.HashMap中被初始化。

定义RDBMS表:
考虑一个情况,我们需要员工记录存储在EMPLOYEE表,将有以下结构:

create table EMPLOYEE ( id INT NOT NULL auto_increment, first_name VARCHAR(20) default NULL, last_name VARCHAR(20) default NULL, salary INT default NULL, PRIMARY KEY (id));

此外,假设每个员工都可以有一个或多个与他/她相关的证书。我们将存储证书的相关信息在一个单独的表,该表具有以下结构:

create table CERTIFICATE ( id INT NOT NULL auto_increment, certificate_type VARCHAR(40) default NULL, certificate_name VARCHAR(30) default NULL, employee_id INT default NULL, PRIMARY KEY (id));

有一个对多(one-to-many )的关系在EMPLOYEE和证书对象之间。

定义POJO类:
让我们实现一个POJO类员工将被用于保存与EMPLOYEE表中的对象和有证书的列表变量的集合。

import java.util.*;public class Employee { private int id; private String firstName; private String lastName; private int salary; private Map certificates; public Employee() {} public Employee(String fname, String lname, int salary) { this.firstName = fname; this.lastName = lname; this.salary = salary; } public int getId() { return id; } public void setId( int id ) { this.id = id; } public String getFirstName() { return firstName; } public void setFirstName( String first_name ) { this.firstName = first_name; } public String getLastName() { return lastName; } public void setLastName( String last_name ) { this.lastName = last_name; } public int getSalary() { return salary; } public void setSalary( int salary ) { this.salary = salary; } public Map getCertificates() { return certificates; } public void setCertificates( Map certificates ) { this.certificates = certificates; }}

我们需要相应的证书表定义另一个POJO类,这样的证书对象可以存储和检索到的证书表。

public class Certificate{ private int id; private String name; public Certificate() {} public Certificate(String name) { this.name = name; } public int getId() { return id; } public void setId( int id ) { this.id = id; } public String getName() { return name; } public void setName( String name ) { this.name = name; }}

定义Hibernate映射文件:
让我们开发指示Hibernate如何定义的类映射到数据库表的映射文件。<map>元素将被用于定义所使用的映射的规则。

<?xml version="1.0" encoding="utf-8"?><!DOCTYPE hibernate-mapping PUBLIC "-//Hibernate/Hibernate Mapping DTD//EN" "http://puterScience | MCA | 74 || 54 | ProjectManagement | PMP | 74 |+----+--------------------+------------------+-------------+3 rows in set (0.00 sec)

声明:本页内容来源网络,仅供用户参考;我单位不保证亦不表示资料全面及准确无误,也不保证亦不表示这些资料为最新信息,如因任何原因,本网内容或者用户因倚赖本网内容造成任何损失或损害,我单位将不会负任何法律责任。如涉及版权问题,请提交至online#300.cn邮箱联系删除。

相关文章