在忙碌的两个星期的时间里,终于在夹缝中,基本完成第一个小任务。
研究目的和意义:
在实际应用中,我们所使用的各个系统所用使用的数据库是相互独立的,比如,学生的图书管理系统使用的是Oracle数据库,学生课程管理系统所使用的MySQL数据库,假如学校领导想要知道学生在对于自己所学习的课程的借书情况,这对于一般的系统就很难完成,因为通常一个系统只配置一种数据库,这就很难满足领导的需求。因此,本次任务的目的和意义在于,将存储在不同数据库的表根据某种关系建立连接,产生新的数据表,满足实际应用的需求。例如,将图书管理系统存储在Oracle数据库的[借书表] 和 学生课程管理系统存储在MySQL数据库中的[学生课程表] ,根据学生的学号建立连接,并分别在借书表和课程表选取所需的字段,建立一张新的表,来满足实际应用需求。
任务最终呈现结果如下:
一、以http形式调用kettle服务下的bank_change.ktr文件,并在网页端用DataTables的jquery表格插件来显示数据,最终显示结果如图所示:
正确打开方式:
1.将已编辑好的bank_change.ktr放在安装Kettle的目录下,如图所示:
其中bank_change.ktr中设计的步骤目标是将提取两个不同数据库的表,通过某个字段进行连接,通过字段选择,生成一张新的表,并以Json格式进行输出,如图所示:
2.开启Carte的服务器,允许远程请求HTTP进行监控、启动、停止在Carte服务上运行的job和trans
(1) 在window下, 打开cmd,切换到kettle的根目录(我的根目录为D:\Kettle\data-integration)
(2)开启一个web服务器,命令为:carte.bat 127.0.0.1 8081
(3)开启成功一个服务,如图所示。
3.通过用Java请求数据。
(1)仅通过http形式调取数据,如图所示:
1. 输入正确的调用地址http://localhost:8081/kettle/executeTrans/?trans=demo/bank_change.ktr,并需要填写正确用户名和密码,才能登录进去,默认用户名:cluster,密码:cluster。
2.登录成功,将执行bank_change.ktr,并将结果以json形式返回数据,如图所示:
(2)在已建好SpringBoot框架的基础上(搭建框架步骤这里不多介绍),使用Java调取数据
方案一:使用URL进行访问
1. Java代码,如图所示
2.访问结果出现401错误。
3.错误401的原因是无权查看此页面,即使是在地址里添加用户名和密码。
方案二:通过httpClient进行访问(翻烂N张网页后,终于找到解决问题的方法,参考地址)
1. Java代码,如图所示:
2.访问结果,如图所示:
(3)需要将获取的数据,通过使用DataTables表格插件,呈现在网页上
1.在项目中使用 DataTables,需要三步。官网教程:DataTables安装教程
步骤一:引入三个文件:jQuery库、DT的核心js文件、一个DT的css文件,如图:
步骤二:添加 HTML 代码
步骤三:初始化Datatables,通过Ajax获得数据,将所需的字段放在columns中。官网教程:如何读取Json格式的ajax的数据到表格
通过以上正确的打开方式,即可以http形式调用kettle服务下的bank_change.ktr文件,并在网页端用DataTables的jquery表格插件来显示数据。
二、将Kettle文件通过网页上传到Kettle服务的文件夹下,即,最终结果如图所示:
正确打开方式:
(1)使用Bootstrap来编写网页样式,如图所示。Bootstrap教程
(2)使用Java代码,将Kettle文件保存到某个目录下。
通过以上正确的打开方式,即可将某份文件上传到某个目录下。
存在不足之处:
虽然目前可以通过DataTables插件来显示数据,但其显示的字段需要开发人员在前端编写好,而不能通过用户的操作,来选取所需的字段,这有待改进。
网友评论