田源
2023-05-09 d2570148ec3884de3af721bd99c4b7acbbdee075
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
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
package com.vci.ubcs.ddl.processor.ddl;
 
import com.vci.ubcs.ddl.bo.DdlTableBO;
import com.vci.ubcs.ddl.bo.DdlTableInDataBaseBO;
import com.vci.ubcs.ddl.mapper.DdlMapper;
import com.vci.ubcs.starter.web.enumpck.VciFieldTypeEnum;
 
import java.util.List;
 
/**
 * Description:
 *
 * @author LiHang
 * @date 2023/4/24
 */
public abstract class DdlMapperProcessor implements DdlBehavior{
 
    public DdlMapperProcessor(DdlMapper mapper) {
        this.mapper = mapper;
    }
 
    private final DdlMapper mapper;
 
    abstract boolean support(String url);
 
    /**
     * 统计表格中有多少数据
     * @param tableName 表格名称
     * @return 数据的总数
     */
    public int countAll(String tableName){
        return mapper.countAll(tableName);
    }
 
    /**
     * 根据SQL语句创建视图
     * @param viewCreateSql
     * @return 影响行数
     */
    public int createViewBySql( String viewCreateSql){
        return mapper.createViewBySql(viewCreateSql);
    }
 
    /**
     * 根据sql语句插入数据
     * @param insertSql 要执行的sql语句
     * @return 影响的行数
     */
    public int insertBySql(String insertSql){
        return mapper.insertBySql(insertSql);
    }
 
    /**
     * 创建数据库表
     * @param tableName 表格的名称
     * @param attributeSql 属性的sql
     * @return 影响的行数
     */
    public int createTableBySql(String tableName, String attributeSql){
        return mapper.createTableBySql(tableName,attributeSql);
    }
 
    /**
     * 为表格添加注释内容
     * @param tableName 表格的名称
     * @param comment 注释的内容
     * @return 受影响的行数
     */
    public int commentTable(String tableName,  String comment){
        return mapper.commentTable(tableName,comment);
    }
 
    /**
     * 为表格的列添加注释内容
     * @param tableName 表格的名称
     * @param columnName 列
     * @param comment 注释的内容
     * @return 受影响的行数
     */
    public int commentColumnTable(String tableName,String columnName,  String comment){
        return mapper.commentColumnTable(tableName,columnName,comment);
    }
 
    /**
     * 校验数据库表或者视图是否存在
     * @param tableName 表格的名称,不区分大小写
     * @return 存在的个数
     */
    public int checkTableExist( String tableName){
        return mapper.checkTableExist(tableName);
    }
 
    /**
     * 查询表格的字段信息
     * @param tableName 表格的名称
     * @return 数据库表的字段信息
     */
    public List<DdlTableInDataBaseBO> selectTableColumnInfo( String tableName){
        return mapper.selectTableColumnInfo(tableName);
    }
 
    /**
     * 获取所有的表格名称
     * @return 表格名称
     */
    public List<String> selectAllTableName(){
        return mapper.selectAllTableName();
    }
 
    /**
     * 查询表格的中文名称
     * @param tableName 表格名称
     * @return 表格名称和表格中文名称
     */
    public DdlTableBO selectTableComment(String tableName){
        return mapper.selectTableComment(tableName);
    }
 
    /**
     * 向数据库表中添加单个字段
     * @param tableName 表格的名称
     * @param attributeSql 要添加的新的sql
     * @return 影响的行数
     */
    public int addColumn2TableBySql(String tableName, String attributeSql){
        return mapper.addColumn2TableBySql(tableName,attributeSql);
    }
 
    /**
     * 单个修改数据表的字段
     * @param tableName 表格的名称
     * @param attributeSql 属性新的sql
     * @return 影响的行数
     */
    public int modifyTableBySql( String tableName, String attributeSql){
        return mapper.modifyTableBySql(tableName,attributeSql);
    }
 
    /**
     * 删除表格
     * @param tableName 表格名称
     * @return 影响的行数
     */
    public int dropTable( String tableName){
        return mapper.dropTable(tableName);
    }
 
    /**
     * 删除表格中的列
     * @param tableName 表名称
     * @param columnName 列名称
     * @return 受影响的行数
     */
    public int dropTableColumn(String tableName,String columnName){
        return mapper.dropTableColumn(tableName,columnName);
    }
}