您的位置:首页 > 其它

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();
}

}
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: