起步软件技术论坛
搜索
 找回密码
 注册

QQ登录

只需一步,快速开始

查看: 1607|回复: 1

[结贴] 返回Table类型的参数的疑問

[复制链接]

19

主题

78

帖子

204

积分

中级会员

Rank: 3Rank: 3

积分
204
QQ
发表于 2017-1-9 12:09:37 | 显示全部楼层 |阅读模式
定义Action返回值为Table类型
Action的返回值类型,在其对应的java方法中直接指定即可。
例如:
  • public static Table select() {
  •     Table table = KSQL.select("select ER_WPXX.* from ER_WPXX ER_WPXX", null, "/erp/buy/data", null);
  •     table.getProperties().put(Table.PROP_NAME_ROWID, "ER_WPXX");
  •     return table;
  • }

[color=rgb(51, 102, 153) !important]复制代码



在java中返回Table类型
1、使用KSQL.select方法
例如
  • import com.justep.system.data.KSQL;
  • String query = "select t.sOrgFID, t.sOrgFName, t.sOrgName from SA_ResourceControl t where t.sResourceID=:resource and t.sTypeID=:type";
  • HashMap<String, Object> params = new HashMap<String, Object>();
  • params.put("type", typeID);
  • params.put("resource", resourceID);
  • Table table = KSQL.select(query, params, "/system/data", null);

[color=rgb(51, 102, 153) !important]复制代码

2、使用SQL.select方法
例如
  • import com.justep.system.data.SQL;
  • String oracle = "SELECT RPRODUCTID , RPRODUCTNAME , (SELECT RCATEGORYNAME FROM DEMO_REPORTPRODUCTCATEGORY WHERE DEMO_REPORTPRODUCTCATEGORY.RCATEGORYID = DEMO_REPORTPRODUCTS.RCATEGORYID) AS RCATEGORYNAME , (SELECT RCOMPANYNAME FROM DEMO_REPORTSUPPLIERS WHERE DEMO_REPORTSUPPLIERS.RSUPPLIERID = DEMO_REPORTPRODUCTS.RSUPPLIERID)AS RCOMPANYNAME, RQUANTITYPERUNIT,RUNITPRICE,RUNITSINSTOCK FROM DEMO_REPORTPRODUCTS";
  • String mssql = "SELECT RPRODUCTID, RPRODUCTNAME, (SELECT RCATEGORYNAME FROM DEMO_REPORTPRODUCTCATEGORY WHERE DEMO_REPORTPRODUCTCATEGORY.RCATEGORYID = DEMO_REPORTPRODUCTS.RCATEGORYID) AS RCATEGORYNAME , (SELECT RCOMPANYNAME FROM DEMO_REPORTSUPPLIERS WHERE DEMO_REPORTSUPPLIERS.RSUPPLIERID = DEMO_REPORTPRODUCTS.RSUPPLIERID)AS RCOMPANYNAME, RQUANTITYPERUNIT,RUNITPRICE,RUNITSINSTOCK FROM DEMO_REPORTPRODUCTS";
  • HashMap<String,String> sqlMap = new HashMap<String,String>();
  • sqlMap.put(SQL.DEFAULT_DB_NAME,mssql);
  • sqlMap.put(DatabaseProduct.ORACLE.name(),oracle);
  • sqlMap.put(DatabaseProduct.MSSQL.name(),mssql);
  • sqlMap.put(DatabaseProduct.KINGBASE.name(),oracle);
  • sqlMap.put(DatabaseProduct.SYBASE.name(),mssql);
  • sqlMap.put(DatabaseProduct.DB2.name(),oracle);
  • sqlMap.put(DatabaseProduct.MYSQL.name(),mssql);
  • return SQL.select(sqlMap,null,"/demo/report/data");

[color=rgb(51, 102, 153) !important]复制代码



3、使用BizUtils.resultSet2Table方法
例如
  • import com.justep.system.util.BizUtils;
  • Connection conn = ModelUtils.getConnection("/x5demo/rich/data");
  • Statement exeistStmt = conn.createStatement();
  • String sql = "select fGoodsCode,fGoodsName from X5_Goods";
  • ResultSet rs = exeistStmt.executeQuery(sql);
  • Table table = BizUtils.resultSet2Table(rs, (Model)null);

[color=rgb(51, 102, 153) !important]复制代码


問題:
1.
總共有三種方法。為何只有第一個方法需要設置table的主鍵,具體有何用途?
->table.getProperties().put(Table.PROP_NAME_ROWID, "ER_WPXX");
2.
為何其他方法都不需要加這句?




91

主题

13万

帖子

3万

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
36127
发表于 2017-1-9 14:36:36 | 显示全部楼层
不是只有第一个需要设置,其他的也需要设置

设置后如果data中加载数据,默认的rowid的值就是设置的主键关系的值
远程的联系方法QQ1392416607,添加好友时,需在备注里注明其论坛名字及ID,公司等信息
发远程时同时也发一下帖子地址,方便了解要解决的问题  WeX5教程  WeX5下载



如按照该方法解决,请及时跟帖,便于版主结贴
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则

小黑屋|手机版|X3技术论坛|Justep Inc.    

GMT+8, 2025-4-3 10:21 , Processed in 0.057643 second(s), 24 queries .

Powered by Discuz! X3.4

© 2001-2013 Comsenz Inc.

快速回复 返回顶部 返回列表