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

做研学的网站亳州网站开发

做研学的网站,亳州网站开发,外贸网站模板外贸网站建设,wordpress mkv格式今天#xff0c;我们将看到有关此工具的信息#xff0c;该工具使使用JPA Criteria更加容易。 使用该库的应用程序将在JPA实现中更加简洁#xff0c;易于使用和可移植。 在本文的结尾#xff0c;您将找到要下载的源代码。 什么是标准#xff1f; 当前是创建动态查询的最佳… 今天我们将看到有关此工具的信息该工具使使用JPA Criteria更加容易。 使用该库的应用程序将在JPA实现中更加简洁易于使用和可移植。 在本文的结尾您将找到要下载的源代码。 什么是标准 当前是创建动态查询的最佳解决方案。 想象一下一个页面该页面允许用户执行几种类型的查询 所请求的查询可以是按名称按年龄或二者兼有。 让我们看一下如果连接一个String时查询的外观 EntityManager em emf.createEntityManager(); String hql select p from Person p where 11 ;if(parameters[0].equals(name)){hql and p.name values[0] ; }if(parameters[1].equals(age)){hql and p.age values[1]; }TypedQueryPerson query em.createQuery(hql, Person.class);System.out.println(query.getResultList()); 注意在上面的代码中进行了字符串连接 请记住这种做法是一种不良和危险的做法因为它允许“ SQL Injection”黑客攻击。 为了避免这种攻击我们应该使用带有参数的查询 EntityManager em emf.createEntityManager(); String hql select p from Person p where 11 ;if(parameters.contains(name)){hql and p.name :name; }if(parameters.contains(age)){hql and p.age :age; }TypedQueryPerson query em.createQuery(hql, Person.class);if(parameters.contains(name)){query.setParameter(name, values[0].toString()); }if(parameters.contains(age)){query.setParameter(age, Integer.valueOf(values[1].toString())); }System.out.println(query.getResultList()); 注意SQL注入问题已解决但是现在代码必须检查参数以将其添加到查询中并在以后传递其值。 代码需要两个“参数搜索”来完成任务。 Java / Oracle开发人员在创建适用于这种情况的Criteria概念时有一个绝妙的主意。 在下面使用本地JPA标准检查代码的外观 EntityManager em emf.createEntityManager(); CriteriaBuilder cb em.getCriteriaBuilder(); CriteriaQueryPerson cq cb.createQuery(Person.class); RootPerson root cq.from(Person.class); cq.select(root);if(parameters.contains(name)){PathString name root.get(name);cq.where(cb.and(cb.equal(name, values[0]))); }if(parameters.contains(age)){PathInteger name root.get(age);cq.where(cb.and(cb.equal(name, Integer.valueOf(values[1].toString())))); }TypedQueryPerson query em.createQuery(cq);System.out.println(query.getResultList()); 有可能看到传递参数值更加容易。 无需连接字符串或检查参数列表值以填充值。 不幸的是Criteria API过于复杂和冗长。 如果您只想“从人物p中选择p”则需要创建以下条件 EntityManager em emf.createEntityManager(); CriteriaBuilder cb em.getCriteriaBuilder(); CriteriaQueryPerson cq cb.createQuery(Person.class); RootPerson root cq.from(Person.class); cq.select(root);TypedQueryPerson query em.createQuery(cq); System.out.println(query.getResultList()); 对许多代码来说如此简单就可以从表中列出所有人。 为了避免所有这些冗长的细节创建了名为EasyCriteria的开源项目。 如果开发人员使用EasyCriteria则上面的查询如下所示 EntityManager em emf.createEntityManager(); EasyCriteriaPerson easyCriteria EasyCriteriaFactory.createQueryCriteria(em, Person.class);if(parameters.contains(name)){easyCriteria.whereEquals(name, values[0]); }if(parameters.contains(age)){easyCriteria.whereEquals(age, values[1]); }System.out.println(easyCriteria.getResultList()); 请注意所有JPA详细信息都已消失。 现在可以使用干净的代码更轻松地创建动态查询。 关于上面的代码值得一谈 第2行通过“工厂”创建EasyCriteria的实例。 该工厂的存在是为了对创建EasyCriteriaImp类型的对象所需的所有陡峭对象进行抽象。 在将来的版本中将添加新类型的EasyCriteria例如“ Tuple”。 第5和9行传递参数更容易。 要将参数传递给比较值“ name name”只需使用equals方法该方法将属性名称作为第一个参数。 第二个参数将是等于的值。 第12行要运行查询就不必使用Query界面。 EasyCriteria本身承担此责任。 可以通过EasyCriteria提取查询结果。 有两种方法可用于获取查询结果EasyCriteria.getSingleResultEasyCriteria.getResultList。 在EasyCriteria网页上可以找到几个代码示例以及可以使用的方法。 EasyCriteria的另一个优点是可以“链接”所有方法 easyCriteria.whereEquals(name, values[0]).whereEquals(age, values[1]).getResultList(); 这是一个轻量级的库因为唯一的依赖关系是系统将需要的JPA。 注意您的应用程序将需要启动并运行JPA实现。 该库是使用JUnit开发的并已通过HibernateOpenJPA和EclipseLink进行了测试。 JUnit还使用Cobertura框架来检查测试是否覆盖了所有代码行或其中大部分到目前为止我们已覆盖了100。 EasyCriteria仍处于Beta版但开发团队已经计划了一些版本和功能。 EasyCriteria的另一个优点是您的软件代码不再“耦合”到任何类型的JPA实现中。 今天Hibernate具有良好的条件工具但是您的代码必须保持“附加”状态。 使用EasyCriteria您将能够使用任何一种JPA实现。 这个解耦库的证明是EasyCriteria已通过前面引用的3种实现进行了测试。 EasyCriteria具有以下方法inlikeempty和其他。 开发人员将能够使用Criteria进行连接只是不带参数的简单连接所有人都可以区分甚至排序。 在这里您将找到EasyCriteria可以下载并访问其所有文档。 单击此处下载此帖子的源代码。 我希望这篇文章/工具可以对您有所帮助。 参考 EasyCriteria –通过 uaiHebert博客的JCG合作伙伴 Hebert Coelho 使用JPA Criteria的简便方法 。 翻译自: https://www.javacodegeeks.com/2012/07/easycriteria-easy-way-to-use-jpa.html
http://www.pierceye.com/news/614578/

相关文章:

  • 不错的网站建设公网站建设产品展示型的
  • 泰安住房和城乡建设局网站东莞网站推广哪家好信息
  • 个人网站制作的选题意义简短干净三字公司起名
  • 网站卡密代理怎么做网站建设有关表格
  • 易语言可以做网站么永久免费linux云主机
  • 什么网站可以免费做视频软件网站广告推广价格
  • 网站建设手机软件黄页88收费吗
  • 郑州网站建设多少钱wordpress分享获得积分
  • 贵阳网站设计模板建设工程监理招标网站
  • 上海专业的网页设计公司百度推广优化怎么做的
  • 河南城乡建设厅网站wordpress 主题 字体
  • 网站编辑的工作内容深圳网站设计公司有哪些
  • 设计深圳网站制作网站建设及维护招聘
  • 网站开发实训新的体会wordpress防止机器人注册
  • 购买的网站如何换背景自建网站如何被百度收录
  • 国外外贸网站手机销售网站制作
  • 海外永久网站众车网是哪家公司网站
  • 上海 网站开发 兼职布吉建设网站
  • 做网站资金来源是什么wordpress模版sns
  • 聊城wap网站建设如何分析网站竞争对手
  • 卓业网站建设flash 网站 收费
  • 两学一做 答题 网站自己做网站买东西
  • 深圳哪家公司做网站好购物网站开发问题域分析
  • 简单个人网站wordpress插件查询
  • 上海做网站搜索一下马来西亚的网站建设的竞争对手的分析
  • 建站优化易下拉系统163邮箱登录注册
  • c 做网站电子商务平台中搜索词拆解包括
  • 腾讯云10g数字盘做网站够么四川省建设人才网
  • 批量 网站标题中海园林建设有限公司网站
  • 鲜花网站数据库建设免费律师咨询