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

做网站一般注意些什么重庆建设工程信息网下载

做网站一般注意些什么,重庆建设工程信息网下载,西安哪里好玩,网站搬家图片怎么做过去#xff0c;我们一直在每个星期五为您提供有关Java 8的新内容的新文章。这是一个非常令人兴奋的博客系列 #xff0c;但我们想再次将重点放在Java和SQL的核心内容上。 我们仍然偶尔会写关于Java 8的博客#xff0c;但不再是每个星期五#xff08;有些人已经注意到… 过去我们一直在每个星期五为您提供有关Java 8的新内容的新文章。这是一个非常令人兴奋的博客系列 但我们想再次将重点放在Java和SQL的核心内容上。 我们仍然偶尔会写关于Java 8的博客但不再是每个星期五有些人已经注意到。 在Java 8 Friday系列的最后一篇简短文章中我们要重申一个事实我们相信未来属于功能性关系数据转换与ORM相对 。 我们使用面向对象的软件开发范例已经花费了大约20年的时间。 我们许多人对此非常教条。 然而在过去的十年中“新”范式已开始在编程社区中获得越来越多的关注 函数式编程 。 但是函数式编程并不是什么新鲜事物。 Lisp一直是非常早期的函数式编程语言。 XSLT和SQL也具有一定的功能并且是声明性的。 由于我们是SQL功能和声明性性质的忠实拥护者我们为我们现在拥有Java中复杂的工具来转换从SQL数据库提取的表格数据而感到非常兴奋。 溪流 SQL结果集与流非常相似 正如我们之前指出的那样 JDBC ResultSet和Java 8 Streams非常相似 。 当您使用jOOQ使用org.jooq.Result替换JDBC ResultSet时情况org.jooq.Result org.jooq.Result扩展了java.util.List 因此自动继承了所有Streams功能。 考虑以下查询该查询允许获取BOOK和AUTHOR记录之间的一对多关系 MapRecord2String, String, ListRecord2Integer, String booksByAuthor // This work is performed in the database // -------------------------------------- ctx.select(BOOK.ID,BOOK.TITLE,AUTHOR.FIRST_NAME,AUTHOR.LAST_NAME).from(BOOK).join(AUTHOR).on(BOOK.AUTHOR_ID.eq(AUTHOR.ID)).orderBy(BOOK.ID).fetch()// This work is performed in Java memory // -------------------------------------.stream()// Group BOOKs by AUTHOR.collect(groupingBy(// This is the grouping key r - r.into(AUTHOR.FIRST_NAME, AUTHOR.LAST_NAME),// This is the target data structureLinkedHashMap::new,// This is the value to be produced for each// group: A list of BOOKmapping(r - r.into(BOOK.ID, BOOK.TITLE),toList()))); 对于习惯使用jOOQ编写SQL的人来说Java 8 Streams API的流利性是非常习惯的。 显然您还可以使用jOOQ以外的其他工具例如Spring的JdbcTemplate或Apache Commons DbUtils或仅将JDBC ResultSet包装在迭代器中…… 与ORM相比这种方法的优点是根本没有任何魔术发生。 每条映射逻辑都是明确的而且由于使用Java泛型因此完全是类型安全的。 在此示例中 booksByAuthor输出的类型很复杂读/写有点困难但它也具有充分的描述性和实用性。 与POJO相同的功能转换 如果您对使用jOOQ的Record2元组类型不太满意那么没问题。 您可以这样指定自己的数据传输对象 class Book {public int id;public String title;Overridepublic String toString() { ... }Overridepublic int hashCode() { ... }Overridepublic boolean equals(Object obj) { ... } }static class Author {public String firstName;public String lastName;Overridepublic String toString() { ... }Overridepublic int hashCode() { ... }Overridepublic boolean equals(Object obj) { ... } } 使用上述DTO您现在可以利用jOOQ的内置POJO映射将jOOQ记录转换为您自己的域类 MapAuthor, ListBook booksByAuthor ctx.select(BOOK.ID,BOOK.TITLE,AUTHOR.FIRST_NAME,AUTHOR.LAST_NAME).from(BOOK).join(AUTHOR).on(BOOK.AUTHOR_ID.eq(AUTHOR.ID)).orderBy(BOOK.ID).fetch().stream().collect(groupingBy(// This is the grouping key r - r.into(Author.class),LinkedHashMap::new,// This is the grouping value listmapping(r - r.into(Book.class),toList())));显性与隐性 在Data Geekery我们相信Java开发人员的新时代已经开始。 一个时代Annotatiomania™最终结束了人们不再通过注释魔术来承担所有隐性行为。 ORM依赖大量规范来解释每个注释如何与其他注释一起工作。 很难对JPA带给我们的这种不太了解的注释语言进行逆向工程或调试。 在另一方面SQL是很容易理解的。 表是一种易于处理的数据结构如果您需要将这些表转换为更面向对象或更具层次结构的表则可以简单地将函数应用于这些表并自己对值进行分组 通过对这些值进行显式分组您将完全控制映射就像使用jOOQ一样您将完全控制SQL。 这就是为什么我们认为在未来5年中ORM将失去相关性人们将开始使用Java 8 Streams再次拥抱显式 无状态和无 魔术的数据转换技术。 翻译自: https://www.javacodegeeks.com/2014/07/java-8-friday-more-functional-relational-transformation.html
http://www.huolong8.cn/news/352531/

相关文章:

  • 宿州网站建设时间网站开发需要学php吗
  • 城乡建设学校网站南京怎样优化关键词排名
  • 重庆网站建设优化排名学计算机网络技术的就业方向
  • 做海报在哪个网站可以找素材品牌策划公司招聘
  • 一个旅游网站建设需求分析江门制作手机网站
  • 企业网站seo诊断工具企业所得税规避50种
  • 怎么做网站代理商物流公司招聘信息
  • 网站源码怎么做网站怎么添加字体在wordpress
  • 天长市城乡规划建设局网站台州做网站最好的
  • 网站开发和软件开发环保局 网站建设
  • 公司网站维护建设费入什么科目o2o与网站建设论文
  • 全能网站建设pdfwordpress页面标题排序
  • 自己怎么免费做网站网页专门做品牌网站设计服务
  • 做一件代发的网站哈尔滨app网站开发
  • 合肥有什么好的网站建设公司好天津seo培训班在哪里
  • 厘米售卡站怎么做网站wordpress 注册角色
  • 上上海网站设计建设网站建设需要审批吗
  • 免费做网站的网站朝阳网络公司怎么样
  • 六安网站制作费用想学管理方面的培训班
  • 制作营销网站优化防疫政策
  • 杭州做购物网站wordpress 获取相册图片
  • 做平面设计在那个网站上找图好网站做系统叫什么名字
  • 网站编辑wordpress文章版权声明
  • 宁波网站制作报价四川省住房与城乡建设厅网站官网
  • wordpress能做cms魔方优化大师官网
  • 鲜花网站建设策划书甘肃省引洮工程建设管理局官方网站
  • 中学加强校园网站内容建设免费中文网站模板下载
  • 桐城市美丽乡村建设专题网站网站交易平台怎么注册
  • 网站转移空间临淄网站建设公司
  • 官方网站怎么做辽宁工程信息招标网