金蝶BOS,服务端执行SQL语句参考
2017-06-02 12:11
405 查看
执行SQL语句需要在服务端(app目录下,*ControllerBean)进行,常用的工具类为:com.kingdee.eas.util.app.DbUtil。
通常情况下,EntityViewInfo无法实现的复杂查询,才建议使用SQL去查询。
/**
* 获取该方案对应的组织范围
* 返回EAS系统组织单元编码(含合并单元编码);同时,初始化组织映射缓存
* @param ctx 上下文
* @param rptSchemeId 上报方案主键
*
*/
private List<String> getOrgsNumbers(Context ctx, String rptSchemeId) throws BOSException {
List<String> data = new ArrayList<String>();
StringBuffer sql = new StringBuffer();
sql.append("select distinct oum.FNumber orgNumber, oum.FMapNumber mapNumber").append("\n");
sql.append("from T_RPS_RptSchemeOrg orgs").append("\n");
sql.append("inner join T_RPS_RptScheme sch on orgs.FParentID = sch.FID").append("\n");
sql.append("inner join T_RPS_OUMapping oum on orgs.FOrgUnitID = oum.FID").append("\n");
sql.append("where orgs.FIsSelected = 1 and sch.FID = ?").append("\n");
Object[] params = Utils.params(rptSchemeId);
IRowSet rs = DbUtil.executeQuery(ctx, sql.toString(), params);
try {
while(rs.next()){
String orgNumber = rs.getString("orgNumber"); //组织编码
String mapNumber = rs.getString("mapNumber"); //映射编码
this.mapping.put(orgNumber, mapNumber);
data.add(orgNumber);
}
} catch (SQLException e) {
throw new BOSException(e);
}
return data;
}
通常情况下,EntityViewInfo无法实现的复杂查询,才建议使用SQL去查询。
/**
* 获取该方案对应的组织范围
* 返回EAS系统组织单元编码(含合并单元编码);同时,初始化组织映射缓存
* @param ctx 上下文
* @param rptSchemeId 上报方案主键
*
*/
private List<String> getOrgsNumbers(Context ctx, String rptSchemeId) throws BOSException {
List<String> data = new ArrayList<String>();
StringBuffer sql = new StringBuffer();
sql.append("select distinct oum.FNumber orgNumber, oum.FMapNumber mapNumber").append("\n");
sql.append("from T_RPS_RptSchemeOrg orgs").append("\n");
sql.append("inner join T_RPS_RptScheme sch on orgs.FParentID = sch.FID").append("\n");
sql.append("inner join T_RPS_OUMapping oum on orgs.FOrgUnitID = oum.FID").append("\n");
sql.append("where orgs.FIsSelected = 1 and sch.FID = ?").append("\n");
Object[] params = Utils.params(rptSchemeId);
IRowSet rs = DbUtil.executeQuery(ctx, sql.toString(), params);
try {
while(rs.next()){
String orgNumber = rs.getString("orgNumber"); //组织编码
String mapNumber = rs.getString("mapNumber"); //映射编码
this.mapping.put(orgNumber, mapNumber);
data.add(orgNumber);
}
} catch (SQLException e) {
throw new BOSException(e);
}
return data;
}
相关文章推荐
- 给朋友写了一个从脚本文件逐行加载执行SQL语句的程序,现在分享给将来需要的朋友们参考
- 给朋友写了一个从脚本文件逐行加载执行SQL语句的程序,现在分享给将来需要的朋友们参考
- 重复执行sql语句前的判断参考-仅供自己备忘参考
- 10、MySQL 8.0参考手册 4.5.1.5从文本文件执行SQL语句
- BOS客户端不通过服务端去执行sql语句
- 给朋友写了一个从脚本文件逐行加载执行SQL语句的程序,现在分享给将来需要的朋友们参考
- 给朋友写了一个从脚本文件逐行加载执行SQL语句的程序,现在分享给将来需要的朋友们参考
- 得出SQL语句的执行时间的方法
- oracle分页sql语句(参考+原创)
- 如何象SQL语句中的Exec那样在VB中执行一段代码?
- docmd.runsql 语句执行的操作查询如何回滚?
- 蛙蛙推荐:让你的sql语句跨服务器跨数据库跨表执行
- SQL邮件自动应答(根据收到的邮件中的查询语句回复语句执行结果)
- 得出SQL语句的执行时间的方法
- (性能优化篇)如何获得j2ee应用所执行的SQL语句
- SQL查询语句使用方法参考一
- SQL语句参考及记录集对象详解
- 在oracle的PL程序块中执行一个varchar2类型变量中的sql 语句
- @@ERROR @@ROWCOUNT 返回的都是上一条SQL 语句后的执行信息。
- SqlCommand的ExecuteNonQuery()方法执行多条T-SQL语句