shikeying
2024-01-11 3b67e947e36133e2a40eb2737b15ea375e157ea0
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
package com.walker.jdbc.generator.db;
 
import com.walker.jdbc.generator.util.StringUtils;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
 
import java.util.ArrayList;
import java.util.List;
import java.util.Map;
 
public class Table {
 
    private String schem;
    private String name;
    private Column primaryKeyColumn;
    private List<Column> columns;
    private List<Fk> exportedKeysList;
    private List<Fk> importedKeysList;
    private String comment;
    private static final Logger log = LoggerFactory.getLogger(Table.class);
 
    public Table(Map tableMap) {
        this.columns = new ArrayList();
        this.exportedKeysList = new ArrayList();
        this.importedKeysList = new ArrayList();
 
        this.schem = StringUtils.safeToString(tableMap.get("TABLE_SCHEM"));
        this.name = StringUtils.safeToString(tableMap.get("TABLE_NAME")).toUpperCase();
        this.comment = StringUtils.safeToString(tableMap.get("REMARKS"));
    }
 
    public void addColumu(Column column) {
        this.columns.add(column);
    }
 
    public void addPrimaryKeyColumn(String pk) {
        if (getPrimaryKeyColumn() != null) {
            System.err.println("Table[" + getName() + "] 含有重复主键");
        }
        this.primaryKeyColumn = deleteColumn(pk);
    }
 
    public void addExportedKey(Map map) {
        this.exportedKeysList.add(new Fk(map));
    }
 
    public void addImportedKey(Map map) {
        Fk fk = new Fk(map);
        Column column = deleteColumn(fk.getFkcolumn_name());
        if (column != null) {
            fk.setNot_null(column.getNot_null());
            this.importedKeysList.add(fk);
        } else {
            log.error("Table[" + getName() + "]  主键和外键重复(" + fk.getFkcolumn_name() + ")!");
        }
    }
 
    public String getName()
    {
        return this.name;
    }
 
    public Column getPrimaryKeyColumn() {
        return this.primaryKeyColumn;
    }
 
    public String getSchem() {
        return this.schem;
    }
 
    public List<Column> getColumns() {
        return this.columns;
    }
 
    private Column deleteColumn(String comumnName) {
        for (int i = 0; i < this.columns.size(); i++) {
            if (((Column)this.columns.get(i)).getName().equals(comumnName)) {
                return (Column)this.columns.remove(i);
            }
        }
        return null;
    }
 
    public List<Fk> getExportedKeysList() {
        return this.exportedKeysList;
    }
 
    public List<Fk> getImportedKeysList() {
        return this.importedKeysList;
    }
 
    public String getComment() {
        return this.comment;
    }
}