worklight,建立适配器
来源:互联网 发布:网络验证系统破解版 编辑:程序博客网 时间:2024/06/06 13:24
adapter是worklight的交换层,是连接终端应用于远端数据源的工具,那么重要作用就是执行逻辑,返回信息
adapter主要有三种类型,SQL Adapter,http Adapter,Cast Iron® adapter。
本篇仅以SQLAdapter为实例介绍。
1、建立适配器,project中右键新建或者在工具栏中,new worklight Adapter,选择对应的project Name,选择adapter type,输入适配器名称
2、编辑内容,系统自动生成{Adapter Name}.xml和{AdapterName-imp}.js文件,默认连接mysql,我机器只有oracle,所以,更改为连接oracle的驱动串
<dataSourceDefinition><driverClass>oracle.jdbc.driver.OracleDriver </driverClass><url>jdbc:oracle:thin:@10.66.0.17:1521:testdb</url><user>qmystest</user> <password>qmystest</password> </dataSourceDefinition>
此外,配置文件中还有个参数:
<procedure name="procedure1"/><procedure name="proceRename"/>
是Adapter执行方法的名称,具体内容在{AdapterName-imp}.js中定义,二者名称保持一致即可,如下:
var procedure1Statement = WL.Server.createSQLStatement("select dept_code,dept_name from a03");function procedure1(param) {return WL.Server.invokeSQLStatement({preparedStatement : procedure1Statement,parameters : [param]});} function proceRename(param) {return WL.Server.invokeSQLStoredProcedure({procedure : "ap2",parameters : [param]});}
3、修改执行内容:SQL Adapter可以执行一条sql语句,也可以调用数据库对应的过程,执行sql语句时,定义一个相应的语法变量,即
var procedure1Statement = WL.Server.createSQLStatement("select dept_code,dept_name from a03");
4、测试Adapter:保存上述内容后,对创建的的Adpater,右键,先部署,deploy worklight,再测试:invoke worklight procedure,无参数情况下,直接run,返回结果,成功。
{ "isSuccessful": true, "resultSet": [ { "DEPT_CODE": "1", "DEPT_NAME": "销售部" }, { "DEPT_CODE": "2", "DEPT_NAME": "供应部" }, { "DEPT_CODE": "3", "DEPT_NAME": "市场部" } ]}
5、客户端调用:以上,在服务端的SQL Adapter创建完成,需要在客户端调用了。在客户端的hello.html中,增加一个按钮,增加一个下拉框来存储从服务端接收来的信息:
<div><input type="button" value="SQLAdapter" onclick="getFromA03()" /><br /></div><div id="wrapper"><label for="citiesList">请选择部门: </label><select id="deptsList"></select><div id="info"></div></div>
在hello.js中,定义相关脚本,主方法及相关回调方法:function getFromA03(){var invocationData = {adapter : 'ORA17Adapter',procedure : 'procedure1',parameters : []};WL.Client.invokeProcedure(invocationData, {onSuccess : loadSuccess,onFailure : loadFailure,});}function loadSuccess(result){WL.Logger.debug("Feed retrieve success");if (result.invocationResult.resultSet.length>0){deptsList = result.invocationResult.resultSet;fillDeptName();}}function loadFailure(result){WL.Logger.error("Feed retrieve failure");}
getFromA03是主方法,里面通过worklight提供的内置方法,调用适配器内容invocation,然后是成功回调的方法loadSuccess,失败回调的方法loadFailure,我在这里曾经犯了个错,失败回调参数onFailure中的on我弄了个大写的On,找了近一个小时才发现。
成功后,调用fillDeptName,把部门信息添加到页面的下拉列表中,还要注意返回结果集result中的数据格式及调用方式:
result.invocationResult.resultSet
function fillDeptName(){$('#deptsList').empty();for (var i = 0; i < deptsList.length; i++) {var elem = $("<option/>").html(deptsList[i].DEPT_NAME);$('#deptsList').append(elem);}//deptSelectChanged();}
6、查看结果:最终运行效果:- worklight,建立适配器
- worklight适配器-http
- worklight tips
- IBM WorkLight报价参考
- WorkLight第二天
- Worklight Studio技术简介
- Worklight Developer Edition 介绍
- Worklight+eclipse+sencha-touch
- worklight中adapter(webservice)
- Worklight环境搭建
- IBM Worklight开发环境安装
- worklight第三天,集成android
- worklight中的adapter(json&xml)
- IBM Worklight 6.1 平台条件
- IBM Worklight 6.1 Info Center
- worklight获取设备的deviceID
- 适配器
- 适配器
- 使用LVM快照做mysql完全备份和lvm的扩容
- Java调用dll详细例子
- HDU 2526 题意不好理解,用到滚动数组
- linux下重装mysql
- 2012成都赛区网络赛第九题---Buildings(hdu4296)
- worklight,建立适配器
- 解题报告-HDOJ-1385(最短路径——Floyd)
- Android 用户定位
- 50万邮件文本分域检索与查询的python实现(结)
- brocade 300光端交换机zone划分
- 看见一道排序题,练练手。
- bitset 用法
- Android开发----spinner动态联动
- java 多线程总结