表定义(tableDefine)信息

说明

数据库表的定义,包含表的名称,中文名,全部列信息等。 映射到XML中的tableDefine节点。

  1. <tableModel>
  2. <tableDefine id='AcCommonExtInfo' cnname='扩展信息' dbTableName='ac_common_ext_info'>
  3. <column dataName='id' columnName='id' cnname='id' columnType='INT' canBeNull='false' readonly='false' isPK='true' length='10' jspTag='TEXT' dictName='' comment='id' />
  4. <column dataName='ownerType' columnName='owner_type' cnname='归属类型' columnType='INT' canBeNull='false' readonly='false' isPK='false' length='10' jspTag='SELECT' dictName='acCommonExtInfo_ownerType_DICT' comment='归属类型:1.系统,2.项目' />
  5. </tableDefine>
  6. ...更多未展示...

主要的方法和功能请参看源码。

源码

  1. /**
  2. * 表定义信息
  3. * @author david
  4. * @since 2018/12/12
  5. */
  6. class TableDefineVo {
  7. /**
  8. * id
  9. */
  10. private String id;
  11. /**
  12. * 分页大小
  13. */
  14. private String pageSize;
  15. /**
  16. * 表中文名称
  17. */
  18. private String cnname;
  19. /**
  20. * 是否需要分页
  21. */
  22. private Boolean isPaged;
  23. /**
  24. * 数据库表名称
  25. */
  26. private String dbTableName;
  27. /**
  28. * 列map,方便通过key获取
  29. */
  30. Map<String, ColumnVo> columnMap;
  31. /**
  32. * 所有列
  33. */
  34. private List<ColumnVo> columns;
  35. /**
  36. * 主键列
  37. */
  38. private List<ColumnVo> pkColumns;
  39. List<ColumnVo> getColumns() {
  40. return columns;
  41. }
  42. void setColumns(List<ColumnVo> columns) {
  43. this.columns = columns;
  44. }
  45. String getId() {
  46. return id;
  47. }
  48. void setId(String id) {
  49. this.id = id;
  50. }
  51. String getPageSize() {
  52. return pageSize;
  53. }
  54. void setPageSize(String pageSize) {
  55. this.pageSize = pageSize;
  56. }
  57. String getCnname() {
  58. return cnname;
  59. }
  60. void setCnname(String cnname) {
  61. this.cnname = cnname;
  62. }
  63. Boolean getIsPaged() {
  64. return isPaged;
  65. }
  66. void setIsPaged(Boolean isPaged) {
  67. this.isPaged = isPaged;
  68. }
  69. String getDbTableName() {
  70. return dbTableName;
  71. }
  72. void setDbTableName(String dbTableName) {
  73. this.dbTableName = dbTableName;
  74. }
  75. Map<String, ColumnVo> getColumnMap() {
  76. if (columnMap == null) {
  77. columnMap = new HashMap<String, ColumnVo>();
  78. for (ColumnVo column : columns) {
  79. columnMap.put(column.getColumnName(), column);
  80. }
  81. }
  82. return columnMap;
  83. }
  84. void setColumnMap(Map<String, ColumnVo> columnMap) {
  85. this.columnMap = columnMap;
  86. }
  87. /**
  88. * 通过列名获取列信息
  89. * @param columnName 列名
  90. * @return 列信息
  91. */
  92. ColumnVo getColumnByColumnName(String columnName) {
  93. return getColumnMap().get(columnName);
  94. }
  95. /**
  96. * 获取主键列表
  97. * @return
  98. */
  99. List<ColumnVo> getPkColumns() {
  100. if (pkColumns == null) {
  101. PKFilter pkFilter = new PKFilter();
  102. pkColumns = pkFilter.filterColumns(columns);
  103. }
  104. return pkColumns;
  105. }
  106. /**
  107. * 获取一个主键
  108. * @return
  109. */
  110. ColumnVo getPkColumn() {
  111. List<ColumnVo> list = getPkColumns();
  112. if (CollectionUtils.isEmpty(list)) {
  113. return null;
  114. }
  115. return list.get(0);
  116. }
  117. /**
  118. * 获取变量名称
  119. * @return
  120. */
  121. String getVarDomainName() {
  122. return TableNameUtil.lowerCaseFirst(this.id);
  123. }
  124. }