MySqlTableSelector.java 1.5 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748
  1. package com.gitee.gen.gen.mysql;
  2. import com.gitee.gen.gen.ColumnSelector;
  3. import com.gitee.gen.gen.GeneratorConfig;
  4. import com.gitee.gen.gen.TableDefinition;
  5. import com.gitee.gen.gen.TableSelector;
  6. import java.util.Map;
  7. import static com.gitee.gen.util.FieldUtil.convertString;
  8. /**
  9. * 查询mysql数据库表
  10. */
  11. public class MySqlTableSelector extends TableSelector {
  12. public MySqlTableSelector(ColumnSelector columnSelector,
  13. GeneratorConfig dataBaseConfig) {
  14. super(columnSelector, dataBaseConfig);
  15. }
  16. @Override
  17. protected String getShowTablesSQL(GeneratorConfig generatorConfig) {
  18. String dbName = generatorConfig.getDbName();
  19. // 兼容dbName包含特殊字符会报错的情况
  20. if (!(dbName.startsWith("`") && dbName.endsWith("`"))) {
  21. dbName = String.format("`%s`",dbName);
  22. }
  23. String sql = "SHOW TABLE STATUS FROM " + dbName;
  24. if(this.getSchTableNames() != null && this.getSchTableNames().size() > 0) {
  25. StringBuilder tables = new StringBuilder();
  26. for (String table : this.getSchTableNames()) {
  27. tables.append(",'").append(table).append("'");
  28. }
  29. sql += " WHERE NAME IN (" + tables.substring(1) + ")";
  30. }
  31. return sql;
  32. }
  33. @Override
  34. protected TableDefinition buildTableDefinition(Map<String, Object> tableMap) {
  35. TableDefinition tableDefinition = new TableDefinition();
  36. tableDefinition.setTableName(convertString(tableMap.get("NAME")));
  37. tableDefinition.setComment(convertString(tableMap.get("COMMENT")));
  38. return tableDefinition;
  39. }
  40. }