Hibernate 的Set、List、Map集合操作(添加,修改,查询)
2016-08-24 23:43
811 查看
首先配置User.hbm.xml
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE hibernate-mapping PUBLIC
"-//Hibernate/Hibernate Mapping DTD 3.0//EN"
"http://www.hibernate.org/dtd/hibernate-mapping-3.0.dtd">
<hibernate-mapping>
<class name="star.july.c_collection.NewUser" table="c_user">
<!-- 主键 -->
<id name="id" column="uid" >
<!-- 用户自己设定 -->
<!-- <generator class="assigned"></generator> -->
<!-- 数据库自己创建 -->
<generator class="native"></generator>
</id>
<property name="name" column="uname"></property>
<set name="address" table="t_address_set">
<!-- 外键 -->
<key column="uid"></key>
<!--
type:数据存放类型
address:集合的数据存放字段
-->
<element type="string" column="address"></element>
</set>
<!-- List集合
index: List的索引,用于取出数据的排序
-->
<list name="addressList" table="t_address_list">
<key column="uid"></key>
<!-- column的名称一定不能使index -->
<index column="inx"></index>
<element type="string" column="address"></element>
</list>
<!-- Map集合
map-key:Map集合中的 key
-->
<map name="addressMap" table="t_address_map">
<key column="uid"></key>
<map-key column="mk" type="string"></map-key>
<element type="string" column="address"></element>
</map>
</class>
</hibernate-mapping>
然后创建实体类:
package star.july.c_collection;
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 NewUser {
private int id;
private String name;
//收货地址
private Set<String> address = new HashSet<String>();
//list集合
private List<String> addressList = new ArrayList<String>();
//Map集合
private Map<String,String> addressMap = new HashMap<String,String>();
public Map<String, String> getAddressMap() {
return addressMap;
}
public void setAddressMap(Map<String, String> addressMap) {
this.addressMap = addressMap;
}
public List<String> getAddressList() {
return addressList;
}
public void setAddressList(List<String> addressList) {
this.addressList = addressList;
}
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;
}
public Set<String> getAddress() {
return address;
}
public void setAddress(Set<String> address) {
this.address = address;
}
@Override
public String toString() {
return "NewUser [id=" + id + ", name=" + name + ", address=" + address
+ ", addressList=" + addressList + ", addressMap=" + addressMap
+ "]";
}
}
Set集合测试:
package star.july.c_collection;
import java.util.Set;
import org.hibernate.Session;
import org.hibernate.Transaction;
import org.junit.Test;
import star.july.util.HibernateUtil;
//set集合
public class SetDemo {
//添加
@Test
public void test1(){
Session session = HibernateUtil.getSession();
//获取事务对象
Transaction ts = session.getTransaction();
try{
ts.begin();
//创建对象
NewUser u = new NewUser();
// u.setId(3);
u.setName("小年");
u.getAddress().add("广州");
u.getAddress().add("天河");
session.save(u);
ts.commit();
HibernateUtil.close(session);
}catch(Exception e){
e.printStackTrace();
ts.rollback();
}
}
//查询
@Test
public void test2(){
Session session = HibernateUtil.getSession();
//获取事务对象
Transaction ts = session.getTransaction();
try{
ts.begin();
//查询会员
NewUser u = (NewUser)session.get(NewUser.class, 1);
//查询收货地址
Set<String> address = u.getAddress();
System.out.println(u.getName()+"的收货地址");
for(String s : address){
System.out.println(s);
}
ts.commit();
HibernateUtil.close(session);
}catch(Exception e){
e.printStackTrace();
ts.rollback();
}
}
//修改
@Test
public void test3(){
Session session = HibernateUtil.getSession();
//获取事务对象
Transaction ts = session.getTransaction();
try{
ts.begin();
//先查询会员
NewUser u = (NewUser)session.get(NewUser.class, 1);
//再修改
u.getAddress().remove("天河");
u.getAddress().add("佛山");
ts.commit();
HibernateUtil.close(session);
}catch(Exception e){
e.printStackTrace();
ts.rollback();
}
}
}
List集合测试:
package star.july.c_collection;
import java.util.List;
import org.hibernate.Session;
import org.hibernate.Transaction;
import org.junit.Test;
import star.july.util.HibernateUtil;
//List集合
public class ListDemo {
//添加
@Test
public void test1(){
Session session = HibernateUtil.getSession();
//获取事务对象
Transaction ts = session.getTransaction();
try{
ts.begin();
//创建对象
NewUser u = new NewUser();
u.setId(1);
u.setName("小年");
u.getAddressList().add("大良");
u.getAddressList().add("乐从");
u.getAddressList().add("龙江");
session.save(u);
ts.commit();
HibernateUtil.close(session);
}catch(Exception e){
e.printStackTrace();
ts.rollback();
}
}
//查询
@Test
public void test2(){
Session session = HibernateUtil.getSession();
//获取事务对象
Transaction ts = session.getTransaction();
try{
ts.begin();
//查询会员
NewUser u = (NewUser)session.get(NewUser.class, 2);
//查询收货地址
List<String> address = u.getAddressList();
System.out.println(u.getName()+"的收货地址");
for(String s : address){
System.out.println(s);
}
ts.commit();
HibernateUtil.close(session);
}catch(Exception e){
e.printStackTrace();
ts.rollback();
}
}
//修改
@Test
public void test3(){
Session session = HibernateUtil.getSession();
//获取事务对象
Transaction ts = session.getTransaction();
try{
ts.begin();
//先查询会员
NewUser u = (NewUser)session.get(NewUser.class, 2);
//再修改
//通过索引来修改
u.getAddressList().set(2, "杏坛");
u.getAddressList().remove(0);
ts.commit();
HibernateUtil.close(session);
}catch(Exception e){
e.printStackTrace();
ts.rollback();
}
}
}
Map集合测试:
package star.july.c_collection;
import java.util.Map;
import java.util.Map.Entry;
import java.util.Set;
import org.hibernate.Session;
import org.hibernate.Transaction;
import org.junit.Test;
import star.july.util.HibernateUtil;
//Map集合
public class MapDemo {
//添加
@Test
public void test1(){
Session session = HibernateUtil.getSession();
//获取事务对象
Transaction ts = session.getTransaction();
try{
ts.begin();
//创建对象
NewUser u = new NewUser();
u.setId(1);
u.setName("小莫");
u.getAddressMap().put("lc","乐从");
u.getAddressMap().put("dl","大良");
u.getAddressMap().put("lj","龙江");
session.save(u);
ts.commit();
HibernateUtil.close(session);
}catch(Exception e){
e.printStackTrace();
ts.rollback();
}
}
//查询
@Test
public void test2(){
Session session = HibernateUtil.getSession();
//获取事务对象
Transaction ts = session.getTransaction();
try{
ts.begin();
//查询会员
NewUser u = (NewUser)session.get(NewUser.class, 3);
//查询收货地址
Map<String,String> address = u.getAddressMap();
Set<Entry<String, String>> entrySet = address.entrySet();
System.out.println(u.getName()+"的收货地址");
for(Entry<String,String> s : entrySet){
System.out.println(s.getKey()+":"+s.getValue());
}
ts.commit();
HibernateUtil.close(session);
}catch(Exception e){
e.printStackTrace();
ts.rollback();
}
}
//修改
@Test
public void test3(){
Session session = HibernateUtil.getSession();
//获取事务对象
Transaction ts = session.getTransaction();
try{
ts.begin();
//先查询会员
NewUser u = (NewUser)session.get(NewUser.class, 3);
//通过key删除
u.getAddressMap().remove("lj");
ts.commit();
HibernateUtil.close(session);
}catch(Exception e){
e.printStackTrace();
ts.rollback();
}
}
}
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE hibernate-mapping PUBLIC
"-//Hibernate/Hibernate Mapping DTD 3.0//EN"
"http://www.hibernate.org/dtd/hibernate-mapping-3.0.dtd">
<hibernate-mapping>
<class name="star.july.c_collection.NewUser" table="c_user">
<!-- 主键 -->
<id name="id" column="uid" >
<!-- 用户自己设定 -->
<!-- <generator class="assigned"></generator> -->
<!-- 数据库自己创建 -->
<generator class="native"></generator>
</id>
<property name="name" column="uname"></property>
<set name="address" table="t_address_set">
<!-- 外键 -->
<key column="uid"></key>
<!--
type:数据存放类型
address:集合的数据存放字段
-->
<element type="string" column="address"></element>
</set>
<!-- List集合
index: List的索引,用于取出数据的排序
-->
<list name="addressList" table="t_address_list">
<key column="uid"></key>
<!-- column的名称一定不能使index -->
<index column="inx"></index>
<element type="string" column="address"></element>
</list>
<!-- Map集合
map-key:Map集合中的 key
-->
<map name="addressMap" table="t_address_map">
<key column="uid"></key>
<map-key column="mk" type="string"></map-key>
<element type="string" column="address"></element>
</map>
</class>
</hibernate-mapping>
然后创建实体类:
package star.july.c_collection;
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 NewUser {
private int id;
private String name;
//收货地址
private Set<String> address = new HashSet<String>();
//list集合
private List<String> addressList = new ArrayList<String>();
//Map集合
private Map<String,String> addressMap = new HashMap<String,String>();
public Map<String, String> getAddressMap() {
return addressMap;
}
public void setAddressMap(Map<String, String> addressMap) {
this.addressMap = addressMap;
}
public List<String> getAddressList() {
return addressList;
}
public void setAddressList(List<String> addressList) {
this.addressList = addressList;
}
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;
}
public Set<String> getAddress() {
return address;
}
public void setAddress(Set<String> address) {
this.address = address;
}
@Override
public String toString() {
return "NewUser [id=" + id + ", name=" + name + ", address=" + address
+ ", addressList=" + addressList + ", addressMap=" + addressMap
+ "]";
}
}
Set集合测试:
package star.july.c_collection;
import java.util.Set;
import org.hibernate.Session;
import org.hibernate.Transaction;
import org.junit.Test;
import star.july.util.HibernateUtil;
//set集合
public class SetDemo {
//添加
@Test
public void test1(){
Session session = HibernateUtil.getSession();
//获取事务对象
Transaction ts = session.getTransaction();
try{
ts.begin();
//创建对象
NewUser u = new NewUser();
// u.setId(3);
u.setName("小年");
u.getAddress().add("广州");
u.getAddress().add("天河");
session.save(u);
ts.commit();
HibernateUtil.close(session);
}catch(Exception e){
e.printStackTrace();
ts.rollback();
}
}
//查询
@Test
public void test2(){
Session session = HibernateUtil.getSession();
//获取事务对象
Transaction ts = session.getTransaction();
try{
ts.begin();
//查询会员
NewUser u = (NewUser)session.get(NewUser.class, 1);
//查询收货地址
Set<String> address = u.getAddress();
System.out.println(u.getName()+"的收货地址");
for(String s : address){
System.out.println(s);
}
ts.commit();
HibernateUtil.close(session);
}catch(Exception e){
e.printStackTrace();
ts.rollback();
}
}
//修改
@Test
public void test3(){
Session session = HibernateUtil.getSession();
//获取事务对象
Transaction ts = session.getTransaction();
try{
ts.begin();
//先查询会员
NewUser u = (NewUser)session.get(NewUser.class, 1);
//再修改
u.getAddress().remove("天河");
u.getAddress().add("佛山");
ts.commit();
HibernateUtil.close(session);
}catch(Exception e){
e.printStackTrace();
ts.rollback();
}
}
}
List集合测试:
package star.july.c_collection;
import java.util.List;
import org.hibernate.Session;
import org.hibernate.Transaction;
import org.junit.Test;
import star.july.util.HibernateUtil;
//List集合
public class ListDemo {
//添加
@Test
public void test1(){
Session session = HibernateUtil.getSession();
//获取事务对象
Transaction ts = session.getTransaction();
try{
ts.begin();
//创建对象
NewUser u = new NewUser();
u.setId(1);
u.setName("小年");
u.getAddressList().add("大良");
u.getAddressList().add("乐从");
u.getAddressList().add("龙江");
session.save(u);
ts.commit();
HibernateUtil.close(session);
}catch(Exception e){
e.printStackTrace();
ts.rollback();
}
}
//查询
@Test
public void test2(){
Session session = HibernateUtil.getSession();
//获取事务对象
Transaction ts = session.getTransaction();
try{
ts.begin();
//查询会员
NewUser u = (NewUser)session.get(NewUser.class, 2);
//查询收货地址
List<String> address = u.getAddressList();
System.out.println(u.getName()+"的收货地址");
for(String s : address){
System.out.println(s);
}
ts.commit();
HibernateUtil.close(session);
}catch(Exception e){
e.printStackTrace();
ts.rollback();
}
}
//修改
@Test
public void test3(){
Session session = HibernateUtil.getSession();
//获取事务对象
Transaction ts = session.getTransaction();
try{
ts.begin();
//先查询会员
NewUser u = (NewUser)session.get(NewUser.class, 2);
//再修改
//通过索引来修改
u.getAddressList().set(2, "杏坛");
u.getAddressList().remove(0);
ts.commit();
HibernateUtil.close(session);
}catch(Exception e){
e.printStackTrace();
ts.rollback();
}
}
}
Map集合测试:
package star.july.c_collection;
import java.util.Map;
import java.util.Map.Entry;
import java.util.Set;
import org.hibernate.Session;
import org.hibernate.Transaction;
import org.junit.Test;
import star.july.util.HibernateUtil;
//Map集合
public class MapDemo {
//添加
@Test
public void test1(){
Session session = HibernateUtil.getSession();
//获取事务对象
Transaction ts = session.getTransaction();
try{
ts.begin();
//创建对象
NewUser u = new NewUser();
u.setId(1);
u.setName("小莫");
u.getAddressMap().put("lc","乐从");
u.getAddressMap().put("dl","大良");
u.getAddressMap().put("lj","龙江");
session.save(u);
ts.commit();
HibernateUtil.close(session);
}catch(Exception e){
e.printStackTrace();
ts.rollback();
}
}
//查询
@Test
public void test2(){
Session session = HibernateUtil.getSession();
//获取事务对象
Transaction ts = session.getTransaction();
try{
ts.begin();
//查询会员
NewUser u = (NewUser)session.get(NewUser.class, 3);
//查询收货地址
Map<String,String> address = u.getAddressMap();
Set<Entry<String, String>> entrySet = address.entrySet();
System.out.println(u.getName()+"的收货地址");
for(Entry<String,String> s : entrySet){
System.out.println(s.getKey()+":"+s.getValue());
}
ts.commit();
HibernateUtil.close(session);
}catch(Exception e){
e.printStackTrace();
ts.rollback();
}
}
//修改
@Test
public void test3(){
Session session = HibernateUtil.getSession();
//获取事务对象
Transaction ts = session.getTransaction();
try{
ts.begin();
//先查询会员
NewUser u = (NewUser)session.get(NewUser.class, 3);
//通过key删除
u.getAddressMap().remove("lj");
ts.commit();
HibernateUtil.close(session);
}catch(Exception e){
e.printStackTrace();
ts.rollback();
}
}
}
相关文章推荐
- Hibernate的集合映射(Set、List、Array、Map、Bag)
- Hibernate的集合映射(Set、List、Array、Map、Bag)
- hibernate第二天——值类型的集合(set,map,list,bag,sort,order-by),实体类型集合,关联关系,3l类型Long,inverse,级联
- Hibernate的Set,List,Map集合映射,数组映射
- 使用Map集合开发电话簿程序,以电话号码为key,姓名为value,实现电话号码的添加,查询和删除 操作
- Hibernate 多表关联映射- Hibernate中使用的集合类型(set,list,array,bag,map)
- Hibernate之集合映射的使用(Set集合映射,list集合映射,Map集合映射)
- Hibernate映射 --- 集合映射(Set List Map )
- Hibernate 多表关联映射- Hibernate中使用的集合类型(set,list,array,bag,map)
- Hibernate常见的集合映射主要有Set,List,Array,Map,Bag等
- Hibernate常见的集合映射主要有Set,List,Array,Map,Bag
- Hibernate的集合映射(Set、List、Array、Map、Bag)
- Hibernate之集合映射的使用(Set集合映射,list集合映射,Map集合映射)
- hibernate 集合(set, list, array,bag, map)
- Hibernate常见的集合映射 Set,List,Array,Map,Bag
- 【学习笔记】Hibernate映射List、Map、数组、Set、Bag的具体操作
- Hibernate的集合映射(Set、List、Array、Map、Bag)
- JAVA集合(List,Map.Set)相关操作
- hibernate 集合(set, list, array,bag, map)
- Hibernate 多表关联映射- Hibernate中使用的集合类型(set,list,array,bag,map)