TableSelector.java 3.1 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485868788
  1. package com.gitee.gen.gen;
  2. import java.util.ArrayList;
  3. import java.util.List;
  4. import java.util.Map;
  5. public abstract class TableSelector {
  6. private ColumnSelector columnSelector;
  7. private GeneratorConfig generatorConfig;
  8. private List<String> schTableNames;
  9. public TableSelector(ColumnSelector columnSelector, GeneratorConfig generatorConfig) {
  10. this.generatorConfig = generatorConfig;
  11. this.columnSelector = columnSelector;
  12. }
  13. /**
  14. * 查询数据库表的SQL
  15. * 1.如果是oracle的話則應該傳入用戶名,oracle是根據用戶去管理數據的
  16. * 2.mysql的话是传入数据库名,mysql和sqlserver是根据数据库去管理的
  17. *
  18. * @return
  19. */
  20. protected abstract String getShowTablesSQL(String showParam);
  21. protected abstract TableDefinition buildTableDefinition(Map<String, Object> tableMap);
  22. public List<TableDefinition> getTableDefinitions() {
  23. String showParam = generatorConfig.getDbName();
  24. // 如果是oracle数据库则传oracle数据库用户大写
  25. if (generatorConfig.getDriverClass().contains("oracle")) {
  26. showParam = generatorConfig.getUsername().toUpperCase();
  27. }
  28. List<Map<String, Object>> resultList = SqlHelper.runSql(getGeneratorConfig(), getShowTablesSQL(showParam));
  29. List<TableDefinition> tablesList = new ArrayList<TableDefinition>(resultList.size());
  30. for (Map<String, Object> rowMap : resultList) {
  31. TableDefinition tableDefinition = this.buildTableDefinition(rowMap);
  32. String tableName = tableDefinition.getTableName();
  33. tableDefinition.setColumnDefinitions(columnSelector.getColumnDefinitions(tableName));
  34. tablesList.add(tableDefinition);
  35. }
  36. return tablesList;
  37. }
  38. public List<TableDefinition> getSimpleTableDefinitions() {
  39. String showParam = generatorConfig.getDbName();
  40. // 如果是oracle数据库则传oracle数据库用户大写
  41. if (generatorConfig.getDriverClass().contains("oracle")) {
  42. showParam = generatorConfig.getUsername().toUpperCase();
  43. }
  44. List<Map<String, Object>> resultList = SqlHelper.runSql(getGeneratorConfig(), getShowTablesSQL(showParam));
  45. List<TableDefinition> tablesList = new ArrayList<TableDefinition>(resultList.size());
  46. for (Map<String, Object> rowMap : resultList) {
  47. tablesList.add(this.buildTableDefinition(rowMap));
  48. }
  49. return tablesList;
  50. }
  51. public GeneratorConfig getGeneratorConfig() {
  52. return generatorConfig;
  53. }
  54. public void setGeneratorConfig(GeneratorConfig generatorConfig) {
  55. this.generatorConfig = generatorConfig;
  56. }
  57. public ColumnSelector getColumnSelector() {
  58. return columnSelector;
  59. }
  60. public void setColumnSelector(ColumnSelector columnSelector) {
  61. this.columnSelector = columnSelector;
  62. }
  63. public List<String> getSchTableNames() {
  64. return schTableNames;
  65. }
  66. public void setSchTableNames(List<String> schTableNames) {
  67. this.schTableNames = schTableNames;
  68. }
  69. }