当前位置: 首页 > news >正文

属于网站的管理 更新 维护渭南网站建设推广

属于网站的管理 更新 维护,渭南网站建设推广,后端开发需要掌握哪些知识,规划设计公司网站数据过滤并不是一种常规的数据查询方法#xff0c;而是一种整体的筛选方法。数据过滤也可对数据进行筛选#xff0c;因此#xff0c;将其放在Hibernate的数据查询框架中介绍。 如果一旦启用了数据过滤器#xff0c;则不管数据查询#xff0c;还是数据加载#xff0c;该过…数据过滤并不是一种常规的数据查询方法而是一种整体的筛选方法。数据过滤也可对数据进行筛选因此将其放在Hibernate的数据查询框架中介绍。 如果一旦启用了数据过滤器则不管数据查询还是数据加载该过滤器将自动作用于所有数据只有满足过滤条件的记录才会被选出来。 过滤器与定义在类和集合映射文件上的“where”属性非常相似。它们的区别是过滤器可以带参数应用程序可以在运行时决定是否启用指定的过滤器以及使用什么样的参数值。而映射文件上的“where”属性将一直生效且无法动态传入参数。 过滤器的用法很像数据库视图区别是视图在数据库中已经定义完成而过滤器则还需在应用程序中确定参数值。 过滤器的使用分成三步 1定义过滤器。使用filter-def元素定义过滤器 2使用过滤器。使用filter元素使用过滤器 3在代码中启用过滤器。 前两个步骤都是在Hibernate的映射文件中完成的其中filter-def是hibernate-mapping元素的子元素而filter元素是class集合元素的子元素。 filter-def元素用于定义一个过滤器filter则将指定的过滤器应用到指定的持久化类。 一个持久化类或集合可以使用多个过滤器而一个过滤器也可以作用于多个持久化类或集合。 看下面的映射文件示例 ?xml version1.0? !-- Hibernate配置文件的文件头包含DTD等信息 -- !DOCTYPE hibernate-mapping     PUBLIC -//Hibernate/Hibernate Mapping DTD 3.0//EN     http://hibernate.sourceforge.net/hibernate-mapping-3.0.dtd !-- Hibernate 配置文件的根元素 -- hibernate-mapping     !-- 每个class元素定义一个持久化类 --     class nameCategory tablecategory         !-- 定义标识属性 --         id nameid columncategory_id             !-- 指定主键生成器策略 --             generator classnative/         /id         !-- 映射name属性 --         property namename typestring/         !-- 映射effectiveStartDate属性 --         property nameeffectiveStartDate columneff_start_date         typejava.util.Date/         !-- 映射effectiveEndDate属性 --         property nameeffectiveEndDate columneff_end_date         typejava.util.Date/         !-- 映射N-N关联属性 --         set cascadenone inversetrue nameproducts         tableproduct_category             !-- 定义关联属性的key对应连接表中的外键列 --             key columncategory_id/             !-- 定义关联属性 --             many-to-many columnproduct_id classProduct/         /set         !-- 使用过滤器并设置过滤器条件 --         filter nameeffectiveDate condition:asOfDate BETWEEN         eff_start_date and eff_end_date/     /class     !-- 定义第二个持久化类 --     class nameProduct tableproduct         !-- 定义标识属性 --         id nameid columnproduct_id             !-- 指定主键生成器策略 --             generator classnative/         /id         !-- 映射name属性 --         property namename typestring/         !-- 映射stockNumber属性 --         property namestockNumber columnstock_number typeint/         !-- 映射effectiveStartDate属性 --         property nameeffectiveStartDate columneff_start_date         typejava.util.Date/         !-- 映射effectiveEndDate属性 --         property nameeffectiveEndDate columneff_end_date         typejava.util.Date/         !-- 映射N-N关联属性 --         set cascadeall namecategories fetchjoin         tableproduct_category             !-- 定义关联属性的key对应连接表中的外键列 --             key columnproduct_id/             !-- 定义关联属性 --             many-to-many columncategory_id                         classCategory fetchjoin                 !-- 对关联属性使用第一个过滤器 --                 filter nameeffectiveDate                     condition:asOfDate BETWEEN eff_start_date and                     eff_end_date/                 !-- 对关联属性使用第二个过滤器 --                 filter namecategory conditioncategory_id :catId/             /many-to-many         /set         filter nameeffectiveDate condition:asOfDate BETWEEN         eff_start_date AND eff_end_date/     /class     !-- 定义第一个过滤器该过滤器包含一个date类型的参数 --     filter-def nameeffectiveDate         filter-param nameasOfDate typedate/     /filter-def     !-- 定义第二个过滤器该过滤器包含一个long类型的参数 --     filter-def namecategory         filter-param namecatId typelong/     /filter-def /hibernate-mapping 在上面的配置文件中定义了两个过滤器过滤器的定义通过filter-def元素完成。定义过滤器时只需要指定过滤器的名字以及过滤器的参数即可。如Java里的一个方法声明只有方法名和参数列表具体的方法实现是没有的。 过滤器的过滤条件是使用过滤器时才确定的使用过滤器通过filter元素确定filter的condition属性用于确定过滤条件满足该条件的记录才会被抓取到。 系统默认不启用过滤器必须显式通过enableFilter(String filterName)才可以启用过滤器该方法返回一个Filter实例Filter包含setParameter方法用于为过滤器参数赋值。 一旦启用了过滤器过滤器在整个Session内有效所有的数据加载将自动应用该过滤条件直到调用disableFilter方法。 看下面的使用过滤器的示例代码 private void test() throws Exception {     //获取Hibernate Session对象     Session session HibernateUtil.currentSession();     //开始事务     Transaction tx session.beginTransaction();     //启用第一个过滤器     session.enableFilter(effectiveDate)             //为过滤器设置参数             .setParameter(asOfDate, new Date());     //启动第二个过滤器     session.enableFilter(category)             //为过滤器设置参数             .setParameter(catId, new Long(2));     //执行查询该查询没有任何的查询条件     Iterator results session.createQuery(from Product as p)                           .iterate();     //遍历结果集     while (results.hasNext())     {         Product p (Product)results.next();         System.out.println(p.getName());         //此处获取Product关联的种类过滤器也将自动应用过滤         Iterator it p.getCategories().iterator();         System.out.println(p.getCategories().size());         while (it.hasNext())         {             Category c (Category)it.next();             System.out.println(c.getName());         }     }     tx.commit();     HibernateUtil.closeSession(); } 通过使用过滤器定义常用的数据筛选规则如果是临时的数据筛选还是使用常规查询比较好。对于从前使用行列表达式视图的地方此处可以考虑使用过滤器。 转载于:https://www.cnblogs.com/jadmin/archive/2009/07/19/2206096.html
http://wiki.neutronadmin.com/news/281798/

相关文章:

  • 网站建设培训公司近年网络营销成功案例
  • 南京网站推广价格花网站开发背景
  • 做网站国家大学科技园郑州兰州网站设计公司
  • 网站建设百度索引wordpress段子
  • 深圳网站建设服务平台天津网站推广优化
  • 网站做相片wordpress中文是什意思
  • 如何做网站关键词霸屏网站建设内容策略有哪些
  • 大气企业响应式网站公司外贸网站建设
  • 老牌网站建设网站域名所有权证书
  • 怎样在网上做网站做外贸网站
  • 百度云空间能做网站吗可以用自己的电脑做网站吗
  • 河北建设集团有限公司 信息化网站青羊区定制网站建设报价
  • 扁平化网站布局辽宁省工程建设信息网官网
  • 域名空间网站建设北京展厅设计公司科技展厅装修
  • 横琴网站建设公司扬中网站推广
  • 自己做网站能赚钱吗2018网站开发使用框架原因
  • 做网站所需要的代码网站上文章分享的代码怎么做
  • 网站建设saas排名免费聊天软件
  • 网站建设pdf微盘广州网站seo公司
  • 摄影旅游网站源码商贸企业网站建设设计方案
  • 网站怎么上传到空间海南网站搭建价格
  • 做网站开发要多久宿迁建设局网站拆除备案
  • 七星彩网站开发专业团队打造专业品质
  • 企石东莞网站建设自己怎么做响应式网站
  • 河源建设网站网站备案信息页面
  • 莱州双语网站专业的深圳网站设计
  • 企业网站 案例定远建设小学投诉网站
  • 中文的网站做不成二维码做电影网站用什么虚拟主机
  • 美团做团购网站成都网站推广经理
  • 设计师个人网站架构网站开发工作室 建设 方案