Key-Value键值对数据在新生儿听力筛查登记系统中的应用(2)
第三步:利用REPEAT …UNTIL …END REPEAT循环读取所选报告单模板字段配置,利用数据库系统函数CONCAT及GROUP_CONCAT生成动态查询语句,完成数据的行列转换并输出显示。CONCAT函数主要完成字符串的拼接,GROUP_CONCAT函数主要作用是完成行合并。其实现代码如下所示:
第四步:利用Hibernate的createStoredProcedureCall方法调用指定名称的存储过程,通过procedureCall.getOutputs().getCurrent()获取ResultSetOutput结果,最终通过ResultSetOutput获取到datagird的list数据列表,OUT模式的totalcount参数则用于分页,并展示到前台界面。
采用存储过程实现的数据展示简化了系统的Java编程,意味着部分业务逻辑不再应用程序中处理,同时所有的记录检索等操作都是通过存储过程实现,因此采用存储过程编程技术的实现减少了网络交互,而由于不同数据库的内部编程语法不太一致,导致了系统不具备可移植性。
, 百拇医药
2.2 JAVA编程利用JAVA8的新特性实现 JAVA函数式编程主要利用对核心类库的集合类的API和新引入的流(Stream)[6]的改进来实现数据的展示功能,其实现主要步骤如下:
第一步:通过Service层接口调用自定义函数getDataByTemplateId(String id),该函数的主要功能是获取传入的指定登记模板的ID来获取数据存储实体表中符合条件的所有记录,其返回结果为List列表对象。
第二步:通过Stream API处理数据集合,使用collect来将一个数据流中的元素进行分组,由于在数据存储表中同一报告单的一次表单提交数据是使用的UUID.randomUUID()生成的唯一标识,通过collect中的数据分组将产生Map的结果,其实现代码如下:
Map> datamap=lists.stream().collect(
, http://www.100md.com
Collectors.groupingBy(Data::getRowid));
在实现代码中,应用了定义在辅助类Collects中的groupingBy收集器,它通过接收Data实体的getRowid分类方法,并生成Map结果,其中getRowid方法返回的结果将作为Map的Key,符合条件的分类lists集合记录将作为Map的Value。
第三步:申明空的list对象List
第四步:利用Hibernate的createStoredProcedureCall方法调用指定名称的存储过程,通过procedureCall.getOutputs().getCurrent()获取ResultSetOutput结果,最终通过ResultSetOutput获取到datagird的list数据列表,OUT模式的totalcount参数则用于分页,并展示到前台界面。
采用存储过程实现的数据展示简化了系统的Java编程,意味着部分业务逻辑不再应用程序中处理,同时所有的记录检索等操作都是通过存储过程实现,因此采用存储过程编程技术的实现减少了网络交互,而由于不同数据库的内部编程语法不太一致,导致了系统不具备可移植性。
, 百拇医药
2.2 JAVA编程利用JAVA8的新特性实现 JAVA函数式编程主要利用对核心类库的集合类的API和新引入的流(Stream)[6]的改进来实现数据的展示功能,其实现主要步骤如下:
第一步:通过Service层接口调用自定义函数getDataByTemplateId(String id),该函数的主要功能是获取传入的指定登记模板的ID来获取数据存储实体表中符合条件的所有记录,其返回结果为List列表对象。
第二步:通过Stream API处理数据集合,使用collect来将一个数据流中的元素进行分组,由于在数据存储表中同一报告单的一次表单提交数据是使用的UUID.randomUUID()生成的唯一标识,通过collect中的数据分组将产生Map
Map
, http://www.100md.com
Collectors.groupingBy(Data::getRowid));
在实现代码中,应用了定义在辅助类Collects中的groupingBy收集器,它通过接收Data实体的getRowid分类方法,并生成Map结果,其中getRowid方法返回的结果将作为Map的Key,符合条件的分类lists集合记录将作为Map的Value。
第三步:申明空的list对象List