Hiberante动态处理(MAP映射)

来源:互联网 发布:2016淘宝新店怎么刷单 编辑:程序博客网 时间:2024/05/21 10:25
    在做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了。





原创粉丝点击