数据源动态传参

应用场景

复杂SQL查询语句,且有外部变量传递过滤

相关知识

数据源、自定义SQL数据源、参数传递

操作步骤

1.创建自定义SQL数据源编写SQL。

2.如何获取外部参数。参数格式为 ${vjspMap.userId:VARCHAR}

vjspMap为request提交的所有参数集合.您可以直接获取指定参数的数值。

VARCHAR为数据库字段与java类型转换的JDBCTYPE。

范例代码如下:

  1. SELECT
  2. L.LM_NAME AS CNAME,
  3. L.LM_EMAIL AS EMAIL,
  4. L.LM_TEL AS TEL,
  5. TO_CHAR(L.LM_MARK) AS MARK,
  6. 1 AS LINKTYPE,
  7. L.LM_ZW AS ZW,
  8. L.LM_ID AS USERID,
  9. L.LM_GSID AS CLIENTID,
  10. A.AS_NAME AS CLIENTNAME,
  11. G.LMG_NAME AS BM,
  12. M.LMG_ID AS GROUPID,
  13. L.LM_SEX,
  14. '' AS USERHEADPIC,
  15. '' AS OFID
  16. FROM
  17. VJSP_LINKMAN L
  18. LEFT JOIN VJSP_ASSET_INFO A ON L.LM_GSID = A.AS_ID
  19. LEFT JOIN VJSP_DEPT D ON L.LM_BMID = D.DEPT_ID
  20. LEFT JOIN VJSP_LINKMANGROUP_MX M ON L.LM_ID = M.LM_ID
  21. LEFT JOIN VJSP_LINKMANGROUP G ON M.LMG_ID = G.LMG_ID
  22. WHERE
  23. L.LM_CUSERID = '${vjspMap.userId:VARCHAR}'
  24. UNION ALL
  25. SELECT
  26. U.USER_NAME AS CNAME,
  27. U.USER_EMAIL AS EMAIL,
  28. U.USER_PHONE AS TEL,
  29. '' AS MARK,
  30. 2 AS LINKTYPE,
  31. U.USER_ZW AS ZW,
  32. U.USER_ID AS USERID,
  33. U.USER_GSID AS CLIENTID,
  34. A1.AS_NAME AS CLIENTNAME,
  35. D1.DEPT_NAME AS BM,
  36. U.USER_BM_ID AS GROUPID,
  37. U.USER_SEX,
  38. '' AS USERHEADPIC,
  39. U.TS_SSO_USER_INFO_ID AS OFID
  40. FROM
  41. VJSP_USER U
  42. LEFT JOIN VJSP_ASSET_INFO A1 ON U.USER_GSID = A1.AS_ID
  43. LEFT JOIN VJSP_DEPT D1 ON U.USER_BM_ID = D1.DEPT_ID
  44. WHERE
  45. U.USER_GSID IN (
  46. SELECT
  47. *
  48. FROM
  49. TABLE(F_UGSNMS('${vjspMap.userId:VARCHAR}'))
  50. )