Hiberante动态处理(MAP映射)

    在做EAM平台时,通过数据库操作,进行的又一次的抽象,设计一个数据容器模块,可以在平台完成数据表的增删改操作。发现传统的Hiberante的映射class,无法完成数据结构的局部修改和表的动态建立,需要增加或修改java类。
    但是Hiberante本身是支持动态数据模型的,它允许entity映射为功能强大的Map集合类。同时我们遗弃的POJO的好处,POJO为程序操纵带来了很多便利,对象隐蔽了大量的动态过程。
    使用Map为映射类时,在hbm定义文件中,在class中不用指定name属性、而是将name变为entity-name属性等于数据表的名字,映射文件就改好了。然后再将Session中的EntityMode属性设为MAP映射(session.getSession(EntityMode.MAP))。当数据结构(添加表或修改表字段等)发生变化时,我们只需修改或添加hbm文件映射模型就可以了,而不需要添加或修改java实体类了。这样我们就能使用Map存储,查询数据了。
    查询代码操作:
         //hql语句
         String hql = "from 表名";
        //查询数据表
        List list = session.queryList(hql);
                //遍历数据
        for(int i=0;i<list.size();i++){
            Map map = (Map)list.get(i);
            Set l = map.keySet();
            Iterator ii = l.iterator();
            while(ii.hasNext()){
                String key = (String)ii.next();
                System.out.print(key+"--==--"+map.get(key));
            }
        }
    Hiberante的映射方式有三种:MAP、POJO、DOM4J。我们最常用的也就是POJO了。





评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值