原因:很多情况,比如调用存储过程,或者自定义jdbc 查询数据,最终获取到resultSet对象!这个时候,返回给前台data组件中加载这个数据集!
解决方法:把resultSet转成table对象,再转化成JSONObject 对象,然后return 即可
主要代码:
//根据前端传来的json数据,封装成table对象 // 获取参数 JSONObject userData = params.getJSONObject("userData"); // 转换Table Table userTable = Transform.jsonToTable(userData); //获取列定义的集合 Collection<String> columns = userTable.getColumnNames(); //获取ResultSet对象,通过jdbc执行sql语句(常用jdbc操作,也可以调用<strong>存储过程</strong>) Connection conn = context.getConnection(库名); ResultSet rs = pstat.executeQuery(); //根据ResultSet 和 columns 列定义得到table对象 table = Transform.createTableByResultSet(rs, (String) columns); //返回JsonObject即可 return Transform.tableToJson(table);
//可以调试平台代码,看源码的实现:http://docs.wex5.com/debug-baas-platform-in-the-code/
createTableByResultSet 方法定义就是/css/baas-api/src/com/justep/baas/data/Transform.java
columns 时逗号隔开的字段名称
userData 就是前台传过来的参数! 是data组件的json格式数据!
http://docs.wex5.com/wex5-ui-question-list-2174/
评一波