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

营销型网站多少钱网站建设感恩

营销型网站多少钱,网站建设感恩,店铺名称设计logo设计,东莞手机微信网站java流写入数据库SQL一直是一种声明性语言#xff0c;而Java长期以来势在必行。 Java流改变了游戏规则。 通过本动手文章编写您的方式#xff0c;并学习如何使用Java流对RDBMS数据库执行声明性查询#xff0c;而无需编写任何SQL代码。 您会发现#xff0c;Java流和SQL命令的… java流写入数据库 SQL一直是一种声明性语言而Java长期以来势在必行。 Java流改变了游戏规则。 通过本动手文章编写您的方式并学习如何使用Java流对RDBMS数据库执行声明性查询而无需编写任何SQL代码。 您会发现Java流和SQL命令的动词之间有着惊人的相似性。 本文是五分之四 另外还有一个GitHub存储库其中包含每个单元的说明和练习。 第1部分创建流 第2部分中级操作 第三部分终端操作 第4部分数据库流 第5部分使用流创建数据库应用程序 当您熟悉Streams的操作时您可能已经注意到与SQL构造的相似之处。 它们中的一些或多或少直接映射到Stream操作例如LIMIT和COUNT 。 开源项目Speedment利用这种相似性使用纯Java提供对任何关系数据库的类型安全访问。 下表显示了Speedment如何在SQL流和Java流之间进行映射。 我们是Speedment开源项目的贡献者我们将描述Speedment如何允许我们使用数据库作为流源并使用来自任何数据库表的行向管道提供数据。 如上图所示Speedment将建立与数据库的连接然后可以将数据传递给应用程序。 由于Speedment会分析基础数据库并自动生成域模型所需的所有实体类因此无需为数据库条目编写任何代码。 当您不必为要使用的每个表手动编写和维护实体类时它可以节省大量时间。 Sakila数据库 为了本文和练习的方便我们使用MySQL示例数据库Sakila作为我们的数据源。 Sakila数据库为老式电影租赁业务建模因此包含诸如Film和Actor之类的表。 数据库的实例部署在云中并且可以公开访问。 速度管理器 在Speedment中数据库表的句柄称为 Manager 。 管理器是自动生成的代码的一部分。 Manager充当数据库表的句柄并且可以充当流源。 在这种情况下每一行都对应一个Film实例。 通过调用以下内容实例化“加速Manager FilmManager films speedment.getOrThrow(FilmManager. class ); 注意speedment是可以从ApplicationBuilder获得的实例下一篇文章中有关此主题的更多信息。 如果调用了FilmManager::stream 则结果是一个Stream 我们可以自由地对其应用任何中间或终端操作。 首先我们将收集列表中的所有行。 ListFilm allFilms films.stream().collect(toList()); FilmImpl { filmId 1 , title ACADEMY DINOSAUR, … FilmImpl { filmId 2 , title ACE GOLDFINGER, … FilmImpl { filmId 3 , title ADAPTATION HOLES, … FilmImpl { filmId , title ADAPTATION HOLES, … … 过滤和计数 让我们看一个简单的示例该示例输出评级为“ PG-13”的电影数量。 就像常规Stream 我们可以过滤出具有正确评分的电影然后对这些条目进行计数。 long pg13FilmCount films.stream() .filter(Film.RATING.equal( PG-13 )) .count(); pg13FilmCount: 195 Speedment自定义实现Streams后的一个重要属性是流能够通过自省来优化自己的管道。 看起来Stream会遍历表的所有行但事实并非如此。 相反Speedment能够将管道转换为传递给数据库的优化SQL查询。 这意味着仅将相关的数据库条目提取到流中。 因此在上面的示例中类似于“ SELECT…FROM film WHERE rating PG-13”流将自动呈现为SQL。 这种自省要求将匿名lambda的任何使用不包含与目标列相关的任何元数据替换为Speedment Fields中的谓词。 在这种情况下 Film.RATING.equal(“PG-13”)返回一个将在每个Film上测试的Predicate 并且仅当该Film的评级为PG-13时才返回true。 虽然这并不妨碍我们将谓词表示为 .filter(f - f.getRating().equals(“PG- 13 ”)) 但这将迫使Speedment获取表中的所有行然后应用谓词因此不建议这样做。 寻找最长的电影 这是一个使用max-operator和Field Film.LENGTH查找数据库中最长的电影的Field Film.LENGTH OptionalFilm longestFilm films.stream() .max(Film.LENGTH); longestFilm: Optional[FilmImpl {filmId 141 , title CHICAGO NORTH, length 185 , ...}] 寻找三部短片 找到三部短片我们定义为短于 50分钟可以通过过滤掉50分钟或更短的任何片并挑选出前三个结果来完成。 该示例中的谓词查看“长度”列的值并确定其是否小于或等于50。 ListFilm threeShortFilms films.stream() .filter(Film.LENGTH.lessOrEqual( 50 )) .limit( 3 ) .collect(toList()); threeShortFilms: [ FilmImpl { filmId 2 , length 48 ,..}, FilmImpl { filmId 3 , length 50 , … }, FilmImpl { filmId 15 , length 46 , ...}] 分页分页 如果要在网站或应用程序中显示所有电影我们可能更希望对项目进行分页而不是一次可能加载数千个条目。 这可以通过结合操作skip和limit() 。 在下面的示例中我们收集第二页的内容假设每个“页面”包含25个条目。 回想一下Streams不能保证元素的特定顺序这意味着我们需要使用sorted-operator定义一个顺序才能使其按预期工作。 ListFilm filmsSortedByLengthPage2 films.stream() .sorted(Film.LENGTH) .skip( 25 * 1 ) .limit( 25 ) .collect(toList()); filmsSortedByLengthPage2: [FilmImpl { filmId 430 , length 49 , …}, …] 注意通过跳过25 *n-1可以找到第n页的内容。 注意2此流将自动呈现为“ SELECT…FROM film ORDER BY length ASC LIMIT”。 OFFSET值[2525]” 以“ A”开头的电影按长度排序 我们可以轻松地找到任何以大写字母“ A”开头的电影并根据其长度以最短的电影为准对它们进行排序如下所示 ListFilm filmsTitleStartsWithA films.stream() .filter(Film.TITLE.startsWith( A )) .sorted(Film.LENGTH) .collect(Collectors.toList()); filmsTitleStartsWithA: [ FilmImpl { filmId 15 , titleALIEN CENTER, …, ratingNC- 17 , length 46 , FilmImpl { filmId 2 , titleACE GOLDFINGER, …, ratingG, length 48 , … ] 计算胶片长度的频率表 我们还可以利用groupingBy运算符根据其长度对存储桶中的胶片进行排序并计算每个存储桶中的胶片总数。 这将创建一个所谓的胶片长度频率表。 MapShort, Long frequencyTableOfLength films.stream() .collect(Collectors.groupingBy( Film.LENGTH.asShort(), counting() )); frequencyTableOfLength: { 46 5 , 47 7 , 48 11 , 49 5 , … } 练习题 对于本周的练习您无需担心连接自己的数据库。 相反我们已经提供了到云中Sakila数据库实例的连接。 像往常一样这些练习可以在此GitHub存储库中找到。 本文的内容足以解决第四个单元MyUnit4Database 。 相应的 Unit4Database接口包含JavaDocs它们描述MyUnit4Database方法的预期实现。 public interface Unit4Database { /** * Returns the total number of films in the database. * * param films manager of film entities * return the total number of films in the database */ long countAllFilms(FilmManager films); 提供的测试例如Unit4MyDatabaseTests 将充当自动评分工具让您知道您的解决方案是否正确。 下一篇 到目前为止我们仅涉及数据库流的内容。 下一篇文章将允许您使用纯Java编写独立的数据库应用程序。 编码愉快 s Per Minborg Julia·古斯塔夫森Julia Gustafsson 资源资源 GitHub开源项目加速 Speedment Stream ORM 初始化程序 GitHub存储库“ hol-streams” 文章第1部分创建流 第2部分中级操作 第3部分终端机操作 翻译自: https://www.javacodegeeks.com/2019/11/become-a-master-of-java-streams-database-streams.htmljava流写入数据库
http://www.yutouwan.com/news/275296/

相关文章:

  • 辽阳市建设行业培训中心网站咸阳住房和城乡建设局网站
  • 网站服务器租用还是托管呢企业网站策划书
  • 徐州网站建设xzqjw云主机网站面板
  • 手机网站怎么做微信登陆6网站对图片优化
  • 做服装公司需要什么网站服务器维护要多久
  • 揭阳网站开发定制seo网络优化是做什么的
  • 设计师网络称呼无锡网站建设优化公司
  • WordPress背景图片编辑seo优化培训学校
  • 东莞企业建站申请多少钱海南省建设厅网站
  • 中国建设劳动学会监制网站wordpress搬家教程
  • 潍坊企化网站建设成都网络推广中联无限
  • 农业网站设计彩票网站制作开发
  • 网站建设教材下载给小说网站做编辑
  • 显示网站正在维护是什么情况做导购类网站
  • 怎样在网站上做营业执照公示重庆市建筑从业人员信息网
  • 学校网站建设先进个人荣誉网站开发公司怎么接单子
  • 网站推广策略的主要方式怎么自己给自己的网站做推广
  • 保洁公司 网站模板17一起广州做网站
  • 青岛网站建设价格买个域名
  • 天津网站建设案例教程手机做网站价格
  • 深圳龙岗建网站网页设计师用什么软件
  • 自建站公司网站建设行业怎么样
  • 网站建设公司对比分析报告大学生做家教比较好的网站
  • 网站建设 接单网站建设平台软件哪个好用
  • 企业网站建设运营的灵魂网站开发后怎么上线
  • 做婚礼请柬的网站有哪些济南轻电商网站建设公司
  • 文本文档做网站网站建设心得总结
  • 鹿泉区城乡建设局网站江苏城嘉建设工程有限公司网站
  • 怎么做谷歌收录的网站网站开发的资料设备
  • 做网站的公司术语cdn网站