Hibernate从入门到精通(3)- 集合的使用(List、Set、Map)
来源:互联网 发布:白金数据 豆瓣 书 编辑:程序博客网 时间:2024/04/29 00:25
Hibernate使用集合类
List集合:有序无名,每个元素都有对应的下标。常用的方法有add(E e),get(int index),contains(Object o)
Set集合:一个不包含重复元素的 collection。常用的方法有add(E e),contains(Object o),iterator()。Set集合没有get方法
Map:将键映射到值的对象。一个映射不能包含重复的键;每个键最多只能映射到一个值。常用方法:put(K key,V value),get(K key),keySet(),EntrySet()。
Map的几种取值方式:
基于映射文件
Admin.java:
package com.edu.entity;import java.io.Serializable;import java.util.ArrayList;import java.util.HashMap;import java.util.HashSet;import java.util.List;import java.util.Map;import java.util.Set;public class Admin implements Serializable {private static final long serialVersionUID = 1L;private Integer adminId;private String adminName;private Set<String> emails = new HashSet<>();private List<String> tel = new ArrayList<>();private Map<String, String> card = new HashMap<String, String>();<span style="white-space:pre"></span>//getter setter}
<?xml version="1.0"?><!DOCTYPE hibernate-mapping PUBLIC "-//Hibernate/Hibernate Mapping DTD 3.0//EN""http://hibernate.sourceforge.net/hibernate-mapping-3.0.dtd"><!-- Generated 2015-10-28 19:11:12 by Hibernate Tools 3.4.0.CR1 --><hibernate-mapping> <class name="com.edu.entity.Admin" table="ADMIN"> <id name="adminId" type="java.lang.Integer"> <column name="ADMIN_ID" /> <generator class="sequence" > <param name="sequence">seq_admin_id</param> </generator> </id> <property name="adminName" type="java.lang.String"> <column name="ADMIN_NAME" /> </property> <!-- Hibernate按照主控方对象的状态的变化来同步更新数据库 inverse 默认是false即自己维持关联,自己是主控方 lazytrueSession缓存中没有该值 fetchSQL语句查询方法(内连接,子查询) cascade级联操作 --> <set name="emails" table="ADMIN_EMAILS" inverse="false" lazy="true" > <key> <column name="ADMIN_ID" /> </key> <element type="java.lang.String"> <column name="EMAIL" /> </element> </set> <list name="tel" inverse="false" table="ADMIN_TEL" lazy="true"> <key> <column name="ADMIN_ID" /> </key> <list-index> <column name="tel_index"></column> </list-index> <element type="java.lang.String"> <column name="TEL" /> </element> </list> <map name="card" table="ADMIN_CARD" lazy="true"> <key> <column name="ADMIN_ID" /> </key> <map-key type="java.lang.String"> <column name="CARD_NO"></column> </map-key> <element type="java.lang.String"> <column name="CARD_PWD" /> </element> </map> </class></hibernate-mapping>
可以看到Set比List少一个<list-index>,其他都相同,Map多一个<map-key>值.(*注意Set集合里的元素不能重复).
基于注解(Annotation):
StudentInfo.java:
package com.edu.entity;import java.io.Serializable;import java.util.ArrayList;import java.util.HashMap;import java.util.HashSet;import java.util.List;import java.util.Map;import java.util.Set;import javax.persistence.CollectionTable;import javax.persistence.Column;import javax.persistence.ElementCollection;import javax.persistence.Entity;import javax.persistence.FetchType;import javax.persistence.GeneratedValue;import javax.persistence.GenerationType;import javax.persistence.Id;import javax.persistence.MapKeyColumn;import javax.persistence.OrderColumn;import javax.persistence.SequenceGenerator;import javax.persistence.Table;<strong>@Entity@Table(name="student_info")</strong>public class StudentInfo implements Serializable {private static final long serialVersionUID = 1L;//序列生成@Id@SequenceGenerator(name="sequenceGenerator",sequenceName="seq_student_info_id",allocationSize=1)@GeneratedValue(generator="sequenceGenerator",strategy=GenerationType.SEQUENCE)@Column(name="stu_id")private Integer stuId;private String stuName;private String stuSex;@ElementCollection(fetch=FetchType.EAGER)@CollectionTable(name="tels_list")//排序@OrderColumn(name="tels_index")@Column(name="tel_info")private List<String> telsList = new ArrayList<>();@ElementCollection(fetch=FetchType.EAGER)@CollectionTable(name="images_set")@Column(name="image_info")private Set<String> imagesSet = new HashSet<>();@ElementCollection(fetch=FetchType.EAGER)@CollectionTable(name="card_map")//map-key@MapKeyColumn(name="card_no")@Column(name="card_pwd")private Map<String, String> cardMap = new HashMap<>();}
1 0
- Hibernate从入门到精通(3)- 集合的使用(List、Set、Map)
- Hibernate从入门到精通(1)
- Hibernate之集合映射的使用(Set集合映射,list集合映射,Map集合映射)
- Hibernate (四) Set List Map 集合映射 和排序
- 集合(List、Set、Map)
- Hibernate从入门到精通(二)Hibernate实例演示
- Hibernate从入门到精通(三)Hibernate配置文件
- Hibernate从入门到精通(二)Hibernate实例演示 .
- Hibernate从入门到精通(三)Hibernate配置文件 .
- Hibernate从入门到精通(二)Hibernate实例演示 .
- Hibernate从入门到精通(三)Hibernate配置文件 .
- Hibernate从入门到精通(二)Hibernate实例演示
- Hibernate从入门到精通(三)Hibernate配置文件
- Java从入门到精通 - 集合类 List
- 【Hibernate】Hibernate的集合映射(Set、List、Array、Map、Bag)
- Hibernate入门一(韩顺平Hibernate从入门到精通视频教程1-3笔记)
- Hibernate 的Set、List、Map集合操作(添加,修改,查询)
- Java集合(list,Set,Map)集合
- C++primer学习:面象对象程序设计(4):继承类中的作用域和拷贝控制
- Android TextView文字过多时通过滚动条显示多余内容
- The Definitive C++ Book Guide and List
- Java线程之后台线程(守护线程)
- Python算法:动态规划
- Hibernate从入门到精通(3)- 集合的使用(List、Set、Map)
- eclipse安装Properties Editor 插件
- c#—— Task.FromResult 的使用
- 匈牙利算法详解
- 网络流入门—用于最大流的Dinic算法
- ZigZag Conversion
- poj 1458 Common Subsequence (最长公共子序列)
- php +js 实现批量删除
- Java父子继承实例的内存控制