使用集算器(esProc)可以很方便的从http数据源读取数据进行处理。
本例子中有一个servlet,对外提供json格式的雇员信息查询。Servlet访问数据库的员工表,保存了员工的信息,如下:
EID NAME SURNAME GENDER STATE BIRTHDAY HIREDATE DEPT SALARY
1 Rebecca Moore F California 1974-11-20 2005-03-11 R&D 7000
2 Ashley Wilson F New York 1980-07-19 2008-03-16 Finance 11000
3 Rachel Johnson F New Mexico 1970-12-17 2010-12-01 Sales 9000
4 Emily Smith F Texas 1985-03-07 2006-08-15 HR 7000
5 Ashley Smith F Texas 1975-05-13 2004-07-30 R&D 16000
6 Matthew Johnson M California 1984-07-07 2005-07-07 Sales 11000
7 Alexis Smith F Illinois 1972-08-16 2002-08-16 Sales 9000
8 Megan Wilson F California 1979-04-19 1984-04-19 Marketing 11000
9 Victoria Davis F Texas 1983-12-07 2009-12-07 HR 3000
…
Servlet的doGet函数,接收json格式的雇员id字符串,通过数据库查询对应的雇员信息,形成json格式的雇员信息清单返回。下面的代码省略了读取数据库,生成雇员清单的过程:
protected void doGet(HttpServletRequestreq,HttpServletResponseresp) throws ServletException, IOException {
//TODO Auto-generated method stub
StringinputString=(String) req.getParameter("input");
//inputString输入值是:"[{EID:8},{EID:32},{EID:44}]";
if(inputString==null) inputString="";
StringoutputString ="";
{...}//此处省略通过inputString查询数据库生成outputString的代码
//outputString生成结果是
//"[{EID:8,NAME:"Megan",SURNAME:"Wilson",GENDER:"F",STATE:\...";
resp.getOutputStream().println(outputString);
resp.setContentType("text/json;charset=GBK");
}
集算器如果要访问这个http servlet,可以采用如下的代码:
A1:定义了要传给servlet的输入参数,也就是json格式的员工id列表。
A2:定义了httpfile对象,url是
http://localhost:8080/demo/testServlet?input=[{EID:8},{EID:32},{EID:44}],字符集是GBK。
A3:导入A2这个httpfile对象返回的结果。
A4:逐行解析每个员工的json格式的信息,整理成一个序列。
A5:对于A4中的序列做计算,将姓和名合并成全名字段。
A6:将A5中的结果导出到文本文件中。