Skip to content

Commit 9f7153b

Browse files
committed
1.4.12
1 parent 8328bb2 commit 9f7153b

14 files changed

Lines changed: 133 additions & 37 deletions

File tree

changelog.md

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,9 @@
11
# changelog
22

3+
## 1.4.12
4+
5+
- PostgreSQL数据源可指定schema(模板中可使用:`${table.schema}`
6+
37
## 1.4.11
48

59
- 优化模板管理交互

front/public/velocity/csharp.json

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -91,6 +91,10 @@
9191
{
9292
"expression": "${table.comment}",
9393
"text": "表注释"
94+
},
95+
{
96+
"expression": "${table.schema}",
97+
"text": "PostgreSQL中的Schema"
9498
}
9599
]
96100
},

front/public/velocity/java.json

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -107,6 +107,10 @@
107107
{
108108
"expression": "${table.comment}",
109109
"text": "表注释"
110+
},
111+
{
112+
"expression": "${table.schema}",
113+
"text": "PostgreSQL中的Schema"
110114
}
111115
]
112116
},

front/src/views/generate/GenerateConfig/index.vue

Lines changed: 18 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -136,6 +136,9 @@
136136
<el-form-item label="Database" prop="dbName">
137137
<el-input v-model="datasourceFormData.dbName" placeholder="数据库" show-word-limit maxlength="64" />
138138
</el-form-item>
139+
<el-form-item v-show="showPgSqlSchema" label="Schema" prop="schemaName">
140+
<el-input v-model="datasourceFormData.schemaName" placeholder="schema" show-word-limit maxlength="64" />
141+
</el-form-item>
139142
<el-form-item label="Username" prop="username">
140143
<el-input v-model="datasourceFormData.username" placeholder="用户名" show-word-limit maxlength="100" />
141144
</el-form-item>
@@ -195,6 +198,12 @@
195198
</style>
196199
<script>
197200
const current_datasource_id_key = "gen-datasource-id"
201+
const DB_TYPE = {
202+
MySQL: 1,
203+
Oracle: 2,
204+
SQL_Server: 3,
205+
PostgreSQL: 4,
206+
}
198207
export default {
199208
name: 'GenerateConfig',
200209
data() {
@@ -225,6 +234,7 @@ export default {
225234
username: '',
226235
password: '',
227236
dbName: '',
237+
schemaName: '',
228238
packageName: '',
229239
delPrefix: '',
230240
groupId: ''
@@ -265,6 +275,11 @@ export default {
265275
}
266276
}
267277
},
278+
computed: {
279+
showPgSqlSchema() {
280+
return this.datasourceFormData.dbType === DB_TYPE.PostgreSQL;
281+
}
282+
},
268283
created() {
269284
this.loadDataSource()
270285
this.loadTemplate()
@@ -299,7 +314,8 @@ export default {
299314
return 'hidden-row';
300315
},
301316
getDatasourceLabel(item) {
302-
return `${item.dbName} (${item.host}) - ${item.username}`
317+
const schema = item.schemaName ? `/${item.schemaName}` : ''
318+
return `${item.dbName}${schema} (${item.host}) - ${item.username}`
303319
},
304320
loadGroups() {
305321
this.post(`/group/list/`, {}, function(resp) {
@@ -350,6 +366,7 @@ export default {
350366
this.datasourceFormData[key] = ''
351367
})
352368
this.datasourceFormData.id = 0
369+
this.datasourceFormData.dbType = 1
353370
this.datasourceDlgShow = true
354371
this.$nextTick(() => {
355372
if (this.groupData.length > 0) {

gen/src/main/java/com/gitee/gen/entity/DatasourceConfig.java

Lines changed: 14 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -8,12 +8,17 @@
88
*/
99
public class DatasourceConfig {
1010
private Integer id;
11-
/** 数据库类型,1:MySql, 2:Oracle, 3:sqlserver */
11+
/**
12+
* 数据库类型
13+
* @see com.gitee.gen.gen.DbType
14+
*/
1215
private Integer dbType;
1316
/** 数据库驱动 */
1417
private String driverClass;
1518
/** 数据库名称 */
1619
private String dbName;
20+
/** schema(PGSQL专用) */
21+
private String schemaName;
1722
/** 数据库host */
1823
private String host;
1924
/** 数据库端口 */
@@ -127,6 +132,14 @@ public void setGroupId(Integer groupId) {
127132
this.groupId = groupId;
128133
}
129134

135+
public String getSchemaName() {
136+
return schemaName;
137+
}
138+
139+
public void setSchemaName(String schemaName) {
140+
this.schemaName = schemaName;
141+
}
142+
130143
@Override
131144
public boolean equals(Object o) {
132145
if (this == o) return true;

gen/src/main/java/com/gitee/gen/gen/GeneratorConfig.java

Lines changed: 9 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -8,6 +8,8 @@ public class GeneratorConfig {
88
private Integer dbType;
99
/** 数据库名称 */
1010
private String dbName;
11+
/** schema(PGSQL专用) */
12+
private String schemaName;
1113
/** 数据库host */
1214
private String host;
1315
/** 数据库端口 */
@@ -88,4 +90,11 @@ public void setPassword(String password) {
8890
this.password = password;
8991
}
9092

93+
public String getSchemaName() {
94+
return schemaName;
95+
}
96+
97+
public void setSchemaName(String schemaName) {
98+
this.schemaName = schemaName;
99+
}
91100
}

gen/src/main/java/com/gitee/gen/gen/TableDefinition.java

Lines changed: 13 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -13,6 +13,11 @@
1313
*/
1414
public class TableDefinition {
1515

16+
/**
17+
* PSSQL对应的schema
18+
*/
19+
private String schema;
20+
1621
/**
1722
* 表名
1823
*/
@@ -157,4 +162,12 @@ public List<CsharpColumnDefinition> getCsharpColumnDefinitions() {
157162
public void setCsharpColumnDefinitions(List<CsharpColumnDefinition> csharpColumnDefinitions) {
158163
this.csharpColumnDefinitions = csharpColumnDefinitions;
159164
}
165+
166+
public String getSchema() {
167+
return schema;
168+
}
169+
170+
public void setSchema(String schema) {
171+
this.schema = schema;
172+
}
160173
}

gen/src/main/java/com/gitee/gen/gen/TableSelector.java

Lines changed: 10 additions & 16 deletions
Original file line numberDiff line numberDiff line change
@@ -25,20 +25,15 @@ public TableSelector(ColumnSelector columnSelector, GeneratorConfig generatorCon
2525
* 查询数据库表的SQL
2626
* 1.如果是oracle的話則應該傳入用戶名,oracle是根據用戶去管理數據的
2727
* 2.mysql的话是传入数据库名,mysql和sqlserver是根据数据库去管理的
28-
*
29-
* @return
28+
* @param generatorConfig 配置
29+
* @return 返回获取表信息的sql
3030
*/
31-
protected abstract String getShowTablesSQL(String showParam);
31+
protected abstract String getShowTablesSQL(GeneratorConfig generatorConfig);
3232

3333
protected abstract TableDefinition buildTableDefinition(Map<String, Object> tableMap);
3434

3535
public List<TableDefinition> getTableDefinitions() {
36-
String showParam = generatorConfig.getDbName();
37-
// 如果是oracle数据库则传oracle数据库用户大写
38-
if (generatorConfig.getDriverClass().contains("oracle")) {
39-
showParam = generatorConfig.getUsername().toUpperCase();
40-
}
41-
List<Map<String, Object>> resultList = SqlHelper.runSql(getGeneratorConfig(), getShowTablesSQL(showParam));
36+
List<Map<String, Object>> resultList = SqlHelper.runSql(getGeneratorConfig(), getShowTablesSQL(generatorConfig));
4237
List<TableDefinition> tablesList = new ArrayList<TableDefinition>(resultList.size());
4338

4439
for (Map<String, Object> rowMap : resultList) {
@@ -64,12 +59,7 @@ private <T> List<T> buildRealColumnDefinitions(List<ColumnDefinition> columnDefi
6459
}
6560

6661
public List<TableDefinition> getSimpleTableDefinitions() {
67-
String showParam = generatorConfig.getDbName();
68-
// 如果是oracle数据库则传oracle数据库用户大写
69-
if (generatorConfig.getDriverClass().contains("oracle")) {
70-
showParam = generatorConfig.getUsername().toUpperCase();
71-
}
72-
List<Map<String, Object>> resultList = SqlHelper.runSql(getGeneratorConfig(), getShowTablesSQL(showParam));
62+
List<Map<String, Object>> resultList = SqlHelper.runSql(getGeneratorConfig(), getShowTablesSQL(generatorConfig));
7363
List<TableDefinition> tablesList = new ArrayList<TableDefinition>(resultList.size());
7464

7565
for (Map<String, Object> rowMap : resultList) {
@@ -85,10 +75,14 @@ public List<String> wrapTableNames() {
8575
return Collections.emptyList();
8676
}
8777
return schTableNames.stream()
88-
.map(tableName -> String.format("'%s'", tableName))
78+
.map(this::wrapValue)
8979
.collect(Collectors.toList());
9080
}
9181

82+
protected String wrapValue(String tableName) {
83+
return String.format("'%s'", tableName);
84+
}
85+
9286
public GeneratorConfig getGeneratorConfig() {
9387
return generatorConfig;
9488
}

gen/src/main/java/com/gitee/gen/gen/mysql/MySqlTableSelector.java

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -2,8 +2,8 @@
22

33
import com.gitee.gen.gen.ColumnSelector;
44
import com.gitee.gen.gen.GeneratorConfig;
5-
import com.gitee.gen.gen.TableSelector;
65
import com.gitee.gen.gen.TableDefinition;
6+
import com.gitee.gen.gen.TableSelector;
77

88
import java.util.Map;
99

@@ -18,7 +18,8 @@ public MySqlTableSelector(ColumnSelector columnSelector,
1818
}
1919

2020
@Override
21-
protected String getShowTablesSQL(String dbName) {
21+
protected String getShowTablesSQL(GeneratorConfig generatorConfig) {
22+
String dbName = generatorConfig.getDbName();
2223
// 兼容dbName包含'-'字段会报错的情况
2324
dbName = dbName.contains("-") ? String.format("`%s`",dbName): dbName;
2425
String sql = "SHOW TABLE STATUS FROM " + dbName;

gen/src/main/java/com/gitee/gen/gen/oracle/OracleTableSelector.java

Lines changed: 5 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -2,8 +2,8 @@
22

33
import com.gitee.gen.gen.ColumnSelector;
44
import com.gitee.gen.gen.GeneratorConfig;
5-
import com.gitee.gen.gen.TableSelector;
65
import com.gitee.gen.gen.TableDefinition;
6+
import com.gitee.gen.gen.TableSelector;
77

88
import java.util.Map;
99

@@ -22,11 +22,12 @@ public OracleTableSelector(ColumnSelector columnSelector,
2222
* FROM ALL_TABLES a,USER_TAB_COMMENTS b
2323
* WHERE a.TABLE_NAME=b.TABLE_NAME
2424
* AND a.OWNER='SYSTEM'
25-
* @param showParam
25+
* @param generatorConfig generatorConfig
2626
* @return
2727
*/
2828
@Override
29-
protected String getShowTablesSQL(String showParam) {
29+
protected String getShowTablesSQL(GeneratorConfig generatorConfig) {
30+
String dbName = generatorConfig.getUsername().toUpperCase();
3031
StringBuilder sb = new StringBuilder("");
3132
sb.append(" SELECT a.TABLE_NAME as NAME,b.COMMENTS as COMMENTS ");
3233
sb.append(" FROM ALL_TABLES a,USER_TAB_COMMENTS b ");
@@ -38,7 +39,7 @@ protected String getShowTablesSQL(String showParam) {
3839
}
3940
sb.append(" AND a.TABLE_NAME IN (" + tables.substring(1) + ")");
4041
}
41-
sb.append(" AND a.OWNER='"+showParam+"'");
42+
sb.append(" AND a.OWNER='"+dbName+"'");
4243
return sb.toString();
4344
}
4445

0 commit comments

Comments
 (0)