Hibernate-集合映射
来源:互联网 发布:thomson数据库 编辑:程序博客网 时间:2024/06/05 14:17
集合映射:
常用的集合映射的元素可以分为以下几种:
list: 用于映射list集合属性
set:用于映射set集合属性
map:用于映射map集合属性
在User.java中设置如下属性,并建立getter和setter方法
private int id;private String userName;private Set<String> address;private List<String> addressList;private Map<String,String> addressMap;
然后在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 package="cn.qblank.hibernate.entity"> <class name="User" table="t_user"> <id name="id" column="id"> <generator class="sequence"> <param name="sequence">t_user_seq</param> </generator> </id> <property name="userName" column="usename" type="string"></property> <!-- Set集合映射 --> <set name="address" table="t_address"> <!-- 指定集合表中的外键字段 --><key column="`uid`"></key><!-- element指定集合表的其他字段 --><element column="address" type="string"></element> </set> <!-- List集合映射 --> <list name="addressList" table="t_addressList"> <!-- 集合外键的列名 当占用数据库中的关键字时用``声明 --> <key column="`userid`"></key> <!-- List集合 list-index 用于存放索引的列 --> <list-index column="lis"></list-index> <!-- element指定集合表的其他字段 --> <element column="address" type="string"></element> </list> <!-- Map集合映射 --> <map name="addressMap" table="t_addressMap"> <!-- 指定外键的字段 --> <key column="`uid`"></key> <!-- map-key 指定map中的key --> <map-key type="string" column="addressKey"></map-key> <!-- element指定集合表的其他字段 --> <element column="address" type="string"></element> </map> </class> </hibernate-mapping>
table属性: 集合表的名字
key属性: 集合外键的列名
element属性:集合元素列的信息
接下来我们写个测试类分别对这些集合映射进行测试
先写个HibernateUtil.java工具类获取session对象
public class HibernateUtil {private static Configuration config;private static SessionFactory factory;//ThreadLocal维护了一个缓存,放置当前配对的session对象//private static ThreadLocal<Session> local = new ThreadLocal<Session>();static{config = new Configuration();//加载文件config.configure("hibernate.cfg.xml");//创建session工厂对象factory = config.buildSessionFactory();}public static Session getSession(){Session session = factory.getCurrentSession();return session;}}
/** * 添加信息 * @param user */public static void save(User user){Session session = HibernateUtil.getSession();try {trans = session.beginTransaction();session.save(user);trans.commit();} catch (HibernateException e) {e.printStackTrace();trans.rollback();}finally{}}
Set集合
private static void mappingSet() {User user = new User();user.setUserName("evan");Set<String> set = new HashSet<>();set.add("湖南");set.add("上海");user.setAddress(set);//添加用户save(user);}运行结果如下:
List集合
/** * List集合的映射 */public static void mappingList(){User user = new User();user.setUserName("evan");List<String> list = new ArrayList<>();list.add("湖南");list.add("北京");user.setAddressList(list);save(user);}
运行结果如下:
Map集合
/** * Map集合映射 */public static void mappingMap(){User user = new User();user.setUserName("evan_qb");Map<String,String> map = new HashMap<>();map.put("1", "湖南");map.put("2", "湖北");user.setAddressMap(map);save(user);}
阅读全文
2 0
- Hibernate高级映射 --- 集合映射
- Hibernate高级映射 --- 集合映射
- Hibernate高级映射 --- 集合映射
- Hibernate高级映射 --- 集合映射
- Hibernate高级映射 --- 集合映射
- Hibernate高级映射 --- 集合映射
- Hibernate集合映射、关联映射
- hibernate中的集合映射
- Hibernate集合映射---Map
- Hibernate Map集合映射
- hibernate中的集合映射
- hibernate映射集合属性
- hibernate 集合映射
- Hibernate 集合映射
- Hibernate集合映射学习
- Hibernate集合映射
- hibernate 八,集合映射
- Hibernate的集合映射
- 【最短路问题】 hdu 1875 畅通工程再续
- 【二分图匹配】
- kinect 2.0 SDK学习笔记(七)--matlab自带相机标定程序对kinect进行简单标定
- 【学习笔记】vue-router路由的两种实现机制
- Primer (十)
- Hibernate-集合映射
- 不用手机号码怎么注册微信号
- 接口的调用与调用别人的接口
- 动态规划 背包问题 poj 1837 Balance
- 工程师的调试法宝之Printf串口输出
- 51nod1277 字符串中的最大值(KMP)
- Girls and Boys
- JAVA学习笔记_利用slf4j进行log4j日志管理
- oracle学习历程 2017/8/21