`
datamachine
  • 浏览: 156477 次
社区版块
存档分类
最新评论
阅读更多

数据库有关联语句,可以方便地进行对齐连接运算,但有时数据是存储在文本文件中的,用JAVA直接计算需要写大量循环语句才能实现,代码繁琐且运行低效。使用集算器来辅助Java编程,可以方便高效地解决此类问题。下面我们通过例子来看一下具体作法。

         文本文件emp.txt存储着员工信息,EId等于1的员工不在该文件中。文本文件sOrder.txt存储着订单信息,其SellerId字段和emp中的EId字段相对应,SellerId等于2的订单不在该表中。部分源数据如下:

 

         emp.txt



 

         sOrder.txt



 

现在需要将empNameDeptGender这三个字段对齐到sOrder中,计算结果输出到新文件中。期望的计算结果如下:



 

         集算器代码:



 

         A1格和A2格分别从文本文件中读取数据,并存入两个变量empsOrder。这里使用了函数import,其默认的列分割符是tab,函数选项@t表示将第一行读为字段名。由于例子中只需要emp.txt中的部分字段,因此A1需要以字段名做参数。计算完成后,empsOrder的值如下图:



 

         A3=join@1(sOrder:s,SellerId;emp:e,EId)。函数join执行连接运算,并将两个表改名为se。其中函数选项@1表示左连接,即例子中的要求:将emp对齐到sOrder中。计算后结果如下:



 

         点击蓝色链接可以看到具体的记录,如下:



 

         右连接只是交换对齐的位置,同样可以用集算器来实现。比如将sOrder按照emp对齐,只需要在代码中交换两者的顺序,即=join@1(emp:e,EId;sOrder:s,SellerId),计算结果如下:



 

         全连接也很容易实现,只需要使用函数选项@f,代码是:join@f(sOrder:s,SellerId;emp:e,EId),计算结果如下:



 

         连接运算共有四种,除了上面提到的左连接、右连接、全连接,还有内连接。函数join默认执行内连接,代码是=join(sOrder:s,SellerId;emp:e,EId),计算结果如下:



 

         回到例子中,A4=A3.new(s.OrderID, s.Client, s.SellerId, s.Amount, s.OrderDate, e.Name, e.Dept, e.Gender)这句代码从连接的表中取得需要的字段,组成新的结构化二维表格,计算结果如下:



 

         对齐的工作已经完成,下面将数据输出到新的文件,代码为:=file("E: \\result.txt").export@t(A4)

 

         函数export默认使用tab作为列分割符,函数选项@t表示将字段名输出在第一行。打开result.txt,可以看到内容如下:



 

上述脚本已经完成了所有的对其输出工作,接下来只需在JAVA代码中调用即可。

         //建立esProc jdbc连接

         Class.forName("com.esproc.jdbc.InternalDriver");

         con= DriverManager.getConnection("jdbc:esproc:local://");

         //调用esProc,其中test是脚本文件名

         st =(com.esproc.jdbc.InternalCStatement)con.prepareCall("call test()");

         //执行esProc存储过程

         st.execute();

         只要执行上述JAVA代码,emp就会对齐到sOrder中,并将计算结果输出到result.txt文件。

 

 

         下面将例子稍作改动:按动态的时间段查询sOrder中的数据,并执行同样的对齐操作,最后直接将结果返回JAVA。为了实现这个例子,集算器需要定义两个参数,分别是beginend,代表起止时间。集算器代码如下:



 

         红色部分为改动的代码。

         A2:通过函数selectsOrder进一步过滤,过滤条件为JAVA传来的起止时间,即@begin@end

         A5:将A4中的计算结果输出到JDBC接口。

         JAVA代码也需要进行相应的改动,以便传入参数,并获取计算结果。代码如下:

         Class.forName("com.esproc.jdbc.InternalDriver");

         con= DriverManager.getConnection("jdbc:esproc:local://");

         st =(com.esproc.jdbc.InternalCStatement)con.prepareCall("call test(?,?)");

         st.setObject(1,startTime);

         st.setObject(2,endTime);

         st.execute();

 

         ResultSet set = st.getResultSet();

  • 大小: 41.7 KB
  • 大小: 28.2 KB
  • 大小: 28.7 KB
  • 大小: 45.1 KB
  • 大小: 52.3 KB
  • 大小: 8.6 KB
  • 大小: 32.7 KB
  • 大小: 8.3 KB
  • 大小: 9.5 KB
  • 大小: 8.8 KB
  • 大小: 47.6 KB
  • 大小: 48.5 KB
  • 大小: 50.3 KB
0
0
分享到:
评论

相关推荐

    Python常用数据结构和公共方法技巧总结

    • 4) 文本对齐 • 5) 去除空白字符 • 6) 拆分和连接 • 4.3 字符串的切片 • 4.4 字符串的格式化输出 • 5. 公共方法 • 5.1 Python 内置函数 • 5.2 切片 • 5.3 运算符 5.4 完整的 for 循环语法

    基于BERT和TransE筹众创教育资源实体对齐研究+人工智能+知识图谱+预训练模型

    ( 2) 在关系三元组的训练 中, 采用改进的 TransE 模型进行迭代训练, 并在 TransE 的向量初始化阶段引入 BERT, 有效提升了 文本初始的语义信息表达; ( 3) 在属性三元组的训 练中, 使用 BERT 对属性和属性值...

    电子教案管理系统ASP源程序

    系统采用结构化的方式来合理组织传统教师的书面教案,把教案内容以学科分级,结合知识点的方式表现出来; 提供了丰富的多媒体表现方式,支持HTML、FLASH、GIF、文本等目前比较流行的媒体格式;便捷的备课方式,操作...

    PT80-NEAT开发指南v1.1

    NEAT 开 发 指南 文档 适用于 PT80 系列 移动数据终端 版本记录 版本号 版本描述 发布日期 V 1.0 初始版本。 2012-04-12 V1.1 修改前三章内容 2012-09-25 目录 第一章 关于本手册.....................................

    2021年计算机应用基础平时作业参考答案.doc

    多媒体计算机技术是计算机综合处理多个媒体信息, 使多个信息建立逻辑连接, 集成为一个系统并交互性技术。P29 8.计算机中, 中央处理器CPU由运算器和__控制器__两部分组成。 9.Http汉字意思是超文本传输协议。p121 ...

    软件界面设计工具_3款合集

    操作方面:拖拽,控件分组,甚至元素之间的对齐都做得很到位; 预制了六十多个界面元素,从简单的输入框,下拉框,到经常用得到的导航条,日历,表格,到复杂的Tag Cloud,Cover Flow, 地图,WYSWYG的格式工具栏等...

    html入门到放弃笔记

    由若干台电脑、手机、平板 通过 网线(WIFI) 连接起来的结构 2、基于Internet上的程序 1、C / S 结构 Client / Server 特点:必须通过指定的客户端软件才能访问服务器端的一种程序 :如 :桌面版QQ,... ... 2...

    Visual Basic 2010入门经典.part1.rar

    15.4 使用Try...Catch...Finally创建结构化错误处理程序 251 15.4.1 处理异常 253 15.4.2 处理预期的异常 254 15.5 总结 256 15.6 问与答 256 15.7 作业 257 15.7.1 测验 257 15.7.2 答案 257 15.7.3 练习 ...

    Visual Basic 2010入门经典.part2.rar

    15.4 使用Try...Catch...Finally创建结构化错误处理程序 251 15.4.1 处理异常 253 15.4.2 处理预期的异常 254 15.5 总结 256 15.6 问与答 256 15.7 作业 257 15.7.1 测验 257 15.7.2 答案 257 15.7.3 练习 ...

    Windows 系统错误代码简单分析

    可能是一个包含注册表数据文件的结构已损坏,也可能内存中该文件的系统映像已损坏,或者因为备份副本(或日志)不存在(或损坏)导致无法恢复该文件。  1016 由注册表引起的 I/O 操作发生了不可恢复的错误。...

    C#全能速查宝典

    1.1.2 as操作符——引用类型转换 3 1.1.3 base关键字——从派生类中访问基类的成员 3 1.1.4 变量——存储特定类型的数据 4 1.1.5 Console类——控制台中的输入流、输出流和错误流 6 1.1.6 Convert类——类型转换 8 ...

    计算机基础与网络基础试卷.docx

    服务器与客户机 17、在( )型拓扑结构中,结点之间的连接是任意的,每个结点有多条线路与其他结点相连。 A.环型拓扑结构 B.总线拓扑结构 C.星型拓扑结构 D.网状型拓扑结构 18、目前人们所使用的计算机网络是根据( ...

    Access 2000数据库系统设计(PDF)---001

    30313.3.4 格式化文本和调整文本控件的 大小 30413.3.5 创建绑定、多行、计算文本框 30513.3.6 改变属性的默认视图和获取帮助 30813.3.7 用向导添加选项组 30813.3.8 使用剪贴板复制控件到其他窗体 31113.3.9 使用...

    Access 2000数据库系统设计(PDF)---002

    30313.3.4 格式化文本和调整文本控件的 大小 30413.3.5 创建绑定、多行、计算文本框 30513.3.6 改变属性的默认视图和获取帮助 30813.3.7 用向导添加选项组 30813.3.8 使用剪贴板复制控件到其他窗体 31113.3.9 使用...

    Access 2000数据库系统设计(PDF)---018

    29813.3 使用工具箱添加控件 30013.3.1 创建作为主窗体基础的查询 30113.3.2 创建一个具有页眉和页脚的空白窗体 30213.3.3 向窗体页眉上添加一个标签 30313.3.4 格式化文本和调整文本控件的大小 30413.3.5 创建绑定...

    Access 2000数据库系统设计(PDF)---003

    30313.3.4 格式化文本和调整文本控件的 大小 30413.3.5 创建绑定、多行、计算文本框 30513.3.6 改变属性的默认视图和获取帮助 30813.3.7 用向导添加选项组 30813.3.8 使用剪贴板复制控件到其他窗体 31113.3.9 使用...

Global site tag (gtag.js) - Google Analytics