b2090f8d06f6fd67e651ffa2852cc01e478edb53.svn-base 7.5 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157
  1. package org.jeecg.modules.online.config.service.impl;
  2. import org.apache.commons.lang.StringUtils;
  3. import org.jeecg.modules.online.config.exception.DBException;
  4. import org.jeecg.modules.online.config.service.DbTableHandleI;
  5. import org.jeecg.modules.online.config.util.ColumnMeta;
  6. public class PgTableHandle implements DbTableHandleI {
  7. public PgTableHandle() {
  8. }
  9. public String getAddColumnSql(ColumnMeta columnMeta) {
  10. return " ADD COLUMN " + this.a(columnMeta) + ";";
  11. }
  12. public String getReNameFieldName(ColumnMeta columnMeta) {
  13. return " RENAME COLUMN " + columnMeta.getOldColumnName() + " to " + columnMeta.getColumnName() + ";";
  14. }
  15. public String getUpdateColumnSql(ColumnMeta cgformcolumnMeta, ColumnMeta datacolumnMeta) throws DBException {
  16. return " ALTER COLUMN " + this.a(cgformcolumnMeta, datacolumnMeta) + ";";
  17. }
  18. public String getSpecialHandle(ColumnMeta cgformcolumnMeta, ColumnMeta datacolumnMeta) {
  19. return " ALTER COLUMN " + this.b(cgformcolumnMeta, datacolumnMeta) + ";";
  20. }
  21. public String getMatchClassTypeByDataType(String dataType, int digits) {
  22. String var3 = "";
  23. if (dataType.equalsIgnoreCase("varchar")) {
  24. var3 = "string";
  25. } else if (dataType.equalsIgnoreCase("double")) {
  26. var3 = "double";
  27. } else if (dataType.contains("int")) {
  28. var3 = "int";
  29. } else if (dataType.equalsIgnoreCase("Date")) {
  30. var3 = "date";
  31. } else if (dataType.equalsIgnoreCase("timestamp")) {
  32. var3 = "date";
  33. } else if (dataType.equalsIgnoreCase("bytea")) {
  34. var3 = "blob";
  35. } else if (dataType.equalsIgnoreCase("text")) {
  36. var3 = "text";
  37. } else if (dataType.equalsIgnoreCase("decimal")) {
  38. var3 = "bigdecimal";
  39. } else if (dataType.equalsIgnoreCase("numeric")) {
  40. var3 = "bigdecimal";
  41. }
  42. return var3;
  43. }
  44. public String dropTableSQL(String tableName) {
  45. return " DROP TABLE " + tableName + " ;";
  46. }
  47. public String getDropColumnSql(String fieldName) {
  48. return " DROP COLUMN " + fieldName + ";";
  49. }
  50. private String a(ColumnMeta oldColumn, ColumnMeta var2) throws DBException {
  51. String var3 = "";
  52. if (oldColumn.getColunmType().equalsIgnoreCase("string")) {
  53. var3 = oldColumn.getColumnName() + " type character varying(" + oldColumn.getColumnSize() + ") ";
  54. } else if (oldColumn.getColunmType().equalsIgnoreCase("date")) {
  55. var3 = oldColumn.getColumnName() + " type timestamp ";
  56. } else if (oldColumn.getColunmType().equalsIgnoreCase("int")) {
  57. var3 = oldColumn.getColumnName() + " type int4 ";
  58. } else if (oldColumn.getColunmType().equalsIgnoreCase("double")) {
  59. var3 = oldColumn.getColumnName() + " type numeric(" + oldColumn.getColumnSize() + "," + oldColumn.getDecimalDigits() + ") ";
  60. } else if (oldColumn.getColunmType().equalsIgnoreCase("BigDecimal")) {
  61. var3 = oldColumn.getColumnName() + " type decimal(" + oldColumn.getColumnSize() + "," + oldColumn.getDecimalDigits() + ") ";
  62. } else if (oldColumn.getColunmType().equalsIgnoreCase("text")) {
  63. var3 = oldColumn.getColumnName() + " text ";
  64. } else if (oldColumn.getColunmType().equalsIgnoreCase("blob")) {
  65. throw new DBException("blob类型不可修改");
  66. }
  67. return var3;
  68. }
  69. private String b(ColumnMeta var1, ColumnMeta var2) {
  70. String var3 = "";
  71. if (!var1.a(var2)) {
  72. if (var1.getColunmType().equalsIgnoreCase("string")) {
  73. var3 = var1.getColumnName();
  74. var3 = var3 + (StringUtils.isNotEmpty(var1.getFieldDefault()) ? " SET DEFAULT " + var1.getFieldDefault() : " DROP DEFAULT");
  75. } else if (var1.getColunmType().equalsIgnoreCase("date")) {
  76. var3 = var1.getColumnName();
  77. var3 = var3 + (StringUtils.isNotEmpty(var1.getFieldDefault()) ? " SET DEFAULT " + var1.getFieldDefault() : " DROP DEFAULT");
  78. } else if (var1.getColunmType().equalsIgnoreCase("int")) {
  79. var3 = var1.getColumnName();
  80. var3 = var3 + (StringUtils.isNotEmpty(var1.getFieldDefault()) ? " SET DEFAULT " + var1.getFieldDefault() : " DROP DEFAULT");
  81. } else if (var1.getColunmType().equalsIgnoreCase("double")) {
  82. var3 = var1.getColumnName();
  83. var3 = var3 + (StringUtils.isNotEmpty(var1.getFieldDefault()) ? " SET DEFAULT " + var1.getFieldDefault() : " DROP DEFAULT");
  84. } else if (var1.getColunmType().equalsIgnoreCase("bigdecimal")) {
  85. var3 = var1.getColumnName();
  86. var3 = var3 + (StringUtils.isNotEmpty(var1.getFieldDefault()) ? " SET DEFAULT " + var1.getFieldDefault() : " DROP DEFAULT");
  87. } else if (var1.getColunmType().equalsIgnoreCase("text")) {
  88. var3 = var1.getColumnName();
  89. var3 = var3 + (StringUtils.isNotEmpty(var1.getFieldDefault()) ? " SET DEFAULT " + var1.getFieldDefault() : " DROP DEFAULT");
  90. }
  91. }
  92. return var3;
  93. }
  94. private String a(ColumnMeta var1) {
  95. String var2 = "";
  96. if (var1.getColunmType().equalsIgnoreCase("string")) {
  97. var2 = var1.getColumnName() + " character varying(" + var1.getColumnSize() + ") ";
  98. } else if (var1.getColunmType().equalsIgnoreCase("date")) {
  99. var2 = var1.getColumnName() + " timestamp ";
  100. } else if (var1.getColunmType().equalsIgnoreCase("int")) {
  101. var2 = var1.getColumnName() + " int4";
  102. } else if (var1.getColunmType().equalsIgnoreCase("double")) {
  103. var2 = var1.getColumnName() + " numeric(" + var1.getColumnSize() + "," + var1.getDecimalDigits() + ") ";
  104. } else if (var1.getColunmType().equalsIgnoreCase("bigdecimal")) {
  105. var2 = var1.getColumnName() + " decimal(" + var1.getColumnSize() + "," + var1.getDecimalDigits() + ") ";
  106. } else if (var1.getColunmType().equalsIgnoreCase("blob")) {
  107. var2 = var1.getColumnName() + " bytea(" + var1.getColumnSize() + ") ";
  108. } else if (var1.getColunmType().equalsIgnoreCase("text")) {
  109. var2 = var1.getColumnName() + " text ";
  110. }
  111. var2 = var2 + (StringUtils.isNotEmpty(var1.getFieldDefault()) ? " DEFAULT " + var1.getFieldDefault() : " ");
  112. return var2;
  113. }
  114. private String b(ColumnMeta var1) {
  115. String var2 = "";
  116. if (var1.getColunmType().equalsIgnoreCase("string")) {
  117. var2 = var1.getColumnName() + " character varying(" + var1.getColumnSize() + ") ";
  118. } else if (var1.getColunmType().equalsIgnoreCase("date")) {
  119. var2 = var1.getColumnName() + " datetime ";
  120. } else if (var1.getColunmType().equalsIgnoreCase("int")) {
  121. var2 = var1.getColumnName() + " int(" + var1.getColumnSize() + ") ";
  122. } else if (var1.getColunmType().equalsIgnoreCase("double")) {
  123. var2 = var1.getColumnName() + " numeric(" + var1.getColumnSize() + "," + var1.getDecimalDigits() + ") ";
  124. }
  125. return var2;
  126. }
  127. public String getCommentSql(ColumnMeta columnMeta) {
  128. return "COMMENT ON COLUMN " + columnMeta.getTableName() + "." + columnMeta.getColumnName() + " IS '" + columnMeta.getComment() + "'";
  129. }
  130. public String dropIndexs(String indexName, String tableName) {
  131. return "DROP INDEX " + indexName;
  132. }
  133. public String countIndex(String indexName, String tableName) {
  134. return "SELECT count(*) FROM pg_indexes WHERE indexname = '" + indexName + "' and tablename = '" + tableName + "'";
  135. }
  136. }