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

建设网站的基本工作流程中国建设银行app下载官网

建设网站的基本工作流程,中国建设银行app下载官网,怎么租服务器做网站,和政网站建设最近#xff0c;我们已经展示了Java 8和函数式编程将如何为使用jOOQ和Java 8 lambda和Streams进行SQL数据的函数数据转换为Java开发人员带来新的视角。 今天#xff0c;我们将这一步骤更进一步#xff0c;将数据转换为JavaFX XYChart.Series以根据数据生成美观的条形图。 设… 最近我们已经展示了Java 8和函数式编程将如何为使用jOOQ和Java 8 lambda和Streams进行SQL数据的函数数据转换为Java开发人员带来新的视角。 今天我们将这一步骤更进一步将数据转换为JavaFX XYChart.Series以根据数据生成美观的条形图。 设置数据库 我们将在PostgreSQL数据库中再次使用世界银行开放数据的一小部分。 我们正在使用的数据如下 DROP SCHEMA IF EXISTS world;CREATE SCHEMA world;CREATE TABLE world.countries (code CHAR(2) NOT NULL,year INT NOT NULL,gdp_per_capita DECIMAL(10, 2) NOT NULL,govt_debt DECIMAL(10, 2) NOT NULL );INSERT INTO world.countries VALUES (CA, 2009, 40764, 51.3),(CA, 2010, 47465, 51.4),(CA, 2011, 51791, 52.5),(CA, 2012, 52409, 53.5),(DE, 2009, 40270, 47.6),(DE, 2010, 40408, 55.5),(DE, 2011, 44355, 55.1),(DE, 2012, 42598, 56.9),(FR, 2009, 40488, 85.0),(FR, 2010, 39448, 89.2),(FR, 2011, 42578, 93.2),(FR, 2012, 39759,103.8),(GB, 2009, 35455,121.3),(GB, 2010, 36573, 85.2),(GB, 2011, 38927, 99.6),(GB, 2012, 38649,103.2),(IT, 2009, 35724,121.3),(IT, 2010, 34673,119.9),(IT, 2011, 36988,113.0),(IT, 2012, 33814,131.1),(JP, 2009, 39473,166.8),(JP, 2010, 43118,174.8),(JP, 2011, 46204,189.5),(JP, 2012, 46548,196.5),(RU, 2009, 8616, 8.7),(RU, 2010, 10710, 9.1),(RU, 2011, 13324, 9.3),(RU, 2012, 14091, 9.4),(US, 2009, 46999, 76.3),(US, 2010, 48358, 85.6),(US, 2011, 49855, 90.1),(US, 2012, 51755, 93.8); 另请参阅本文了解针对上述数据的另一套很棒的SQL查询 我们现在要做的是在两个不同的条形图中绘制两组值 2009-2012年间每个国家的人均GDP 每个国家的债务占其2009年至2012年间每年GDP的百分比 然后这将创建8个系列两个图表中的每个系列都有四个数据点。 除上述内容外我们还希望按2009-2012年之间的平均预测值对系列进行排序以便可以轻松比较系列-进而比较国家/地区。 显然通过结果图在视觉上比在文本上更易于解释因此请保持关注直到文章结尾。 使用jOOQ和JavaFX收集数据 在普通SQL中我们为计算上述数据系列而编写的查询如下所示 select COUNTRIES.YEAR, COUNTRIES.CODE, COUNTRIES.GOVT_DEBT from COUNTRIES join (select COUNTRIES.CODE, avg(COUNTRIES.GOVT_DEBT) avg from COUNTRIES group by COUNTRIES.CODE ) c1 on COUNTRIES.CODE c1.CODE order by avg asc, COUNTRIES.CODE asc, COUNTRIES.YEAR asc 换句话说我们只需要从COUNTRIES表中选择相关列就可以自动加入每个国家/地区的平均预测值以便可以按该平均值对结果进行排序。 可以使用窗口函数来编写相同的查询。 我们稍后再讲。 我们将编写以下代码来使用jOOQ和JavaFX创建这样的条形图 CategoryAxis xAxis new CategoryAxis(); NumberAxis yAxis new NumberAxis(); xAxis.setLabel(Country); yAxis.setLabel(% of GDP);BarChartString, Number bc new BarChart(xAxis, yAxis); bc.setTitle(Government Debt); bc.getData().addAll(// SQL data transformation, executed in the DB// -------------------------------------------DSL.using(connection).select(COUNTRIES.YEAR,COUNTRIES.CODE,COUNTRIES.GOVT_DEBT).from(COUNTRIES).join(table(select(COUNTRIES.CODE, avg(COUNTRIES.GOVT_DEBT).as(avg)).from(COUNTRIES).groupBy(COUNTRIES.CODE)).as(c1)).on(COUNTRIES.CODE.eq(field(name(c1, COUNTRIES.CODE.getName()), String.class)))// order countries by their average // projected value.orderBy(field(name(avg)),COUNTRIES.CODE,COUNTRIES.YEAR)// The result produced by the above statement// looks like this:// -----------------// |year|code|govt_debt|// -----------------// |2009|RU | 8.70|// |2010|RU | 9.10|// |2011|RU | 9.30|// |2012|RU | 9.40|// |2009|CA | 51.30|// -----------------// Java data transformation, executed in app memory// ------------------------------------------------// Group results by year, keeping sort // order in place.fetchGroups(COUNTRIES.YEAR)// The generic type of this is inferred...// StreamEntryInteger, Result// Record3BigDecimal, String, Integer// .entrySet().stream()// Map entries into { Year - Projected value }.map(entry - new XYChart.Series(entry.getKey().toString(),observableArrayList(// Map records into a chart Dataentry.getValue().map(country - new XYChart.DataString, Number(country.getValue(COUNTRIES.CODE),country.getValue(COUNTRIES.GOVT_DEBT)))))).collect(toList()) ); 真正有趣的是我们可以从数据库中获取数据然后将其一次转换为JavaFX数据结构。 整个过程几乎是一个Java语句。 SQL和Java完全分开 正如我们之前在此博客上所写的那样 将以上方法与LINQ或JPQL的DTO提取功能进行比较时 存在非常重要的区别。 即使我们在一个语句中表示整个转换SQL查询还是与Java内存数据转换完全分开。 在表达对数据库的SQL查询时我们希望尽可能精确以便能够计算最佳执行计划。 只有实现了数据集之后Java 8 Stream转换才会启动。 当我们将上面的SQL-92兼容查询更改为使用超棒的窗口函数的SQL-1999兼容查询时这一点的重要性就变得很清楚。 上面的语句的jOOQ部分可以由以下查询代替 DSL.using(connection).select(COUNTRIES.YEAR,COUNTRIES.CODE,COUNTRIES.GOVT_DEBT).from(COUNTRIES).orderBy(avg(COUNTRIES.GOVT_DEBT).over(partitionBy(COUNTRIES.CODE)),COUNTRIES.CODE,COUNTRIES.YEAR); …或在SQL中 selectCOUNTRIES.YEAR,COUNTRIES.CODE,COUNTRIES.GOVT_DEBT fromCOUNTRIES order byavg(COUNTRIES.GOVT_DEBT) over (partition by COUNTRIES.CODE),COUNTRIES.CODE,COUNTRIES.YEAR 如您所见运行此类报告时至关重要的是要控制实际的SQL语句。 这样您根本不可能通过窗口函数通过嵌套选择将排序重构为效率更高的排序。 更不用说重构数十行Java排序逻辑了。 是的 难以超越窗口功能之美 如果我们添加一些其他的JavaFX样板文件以将图表放入窗格场景和舞台中我们将在下面获得这些漂亮的图表 带有JavaFX和jOOQ的SQL 自己玩 您可以自己下载并运行上面的示例。 只需下载以下示例并运行mvn clean install https : //github.com/jOOQ/jOOQ/tree/master/jOOQ-examples/jOOQ-javafx-example 翻译自: https://www.javacodegeeks.com/2015/01/transform-your-sql-data-into-charts-using-jooq-and-javafx.html
http://www.sadfv.cn/news/455180/

相关文章:

  • 动画毕业设计代做网站网络营销建设
  • 宝塔建站详细教程网页源代码怎么打开
  • 深圳龙岗建站公司网站域名注册流程
  • 不会网站维护可以做吗温室大棚建设 网站及排名转卖
  • wordpress网站模板仿站工具网站后台管理系统ie8用不了
  • 网站建设的销售是怎么样的阳江人才招聘网
  • 高校网站站群设计网站项目描述
  • 郑州网站定制外包北京专业制作网站的公司
  • 设计网站 站什么网简易东莞网站制作公司
  • 郴州建站江苏省建设协会网站
  • 什么东西可以做网站河南省级建设主管部门网站
  • 手机网站建设需求文档怎么制作网页文件
  • 网站开发公司名称如何申请自己的个人网站
  • 网站建设长尾关键词昆山网站制作
  • 网站建设需求表福建省建设厅网站人员
  • html做网站的原则房屋模拟装修软件
  • 站长之家关键词挖掘工具wordpress获取文章内容页的分类
  • 网站建设排名政务重庆市建设工程招投标交易信息网
  • 绵阳网站搜索排名太原百度快速排名提升
  • 医疗营销网站建设方案推广渠道有哪些平台
  • 网站如何接广告php建网站教程
  • 网站备案前置审批 成都浪起科技做的网站怎么样
  • 附近网站建设和田地区建设局网站
  • 网上黑赌网站如何做代理广告设计在哪里学
  • 做网站工具湖南营销型网站建设 要上磐石网络
  • 怎么查一个网站是什么程序做的宁波论坛招聘最新消息
  • 常州网站推广培训江苏中益建设官方网站
  • 网站工作状态建设有哪些好玩的网页游戏
  • 网站服务类型是什么意思怎么修改网站首页logo
  • 网站设计开发收费标准企业展示型网站