forked from lxm_tools/screw
⚡ 代码优化
This commit is contained in:
@@ -1,3 +1,20 @@
|
||||
/*
|
||||
* screw-core - 简洁好用的数据库表结构文档生成工具
|
||||
* Copyright © 2020 SanLi (qinggang.zuo@gmail.com)
|
||||
*
|
||||
* This program is free software: you can redistribute it and/or modify
|
||||
* it under the terms of the GNU Lesser General Public License as published by
|
||||
* the Free Software Foundation, either version 3 of the License, or
|
||||
* (at your option) any later version.
|
||||
*
|
||||
* This program is distributed in the hope that it will be useful,
|
||||
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
* GNU Lesser General Public License for more details.
|
||||
*
|
||||
* You should have received a copy of the GNU Lesser General Public License
|
||||
* along with this program. If not, see <http://www.gnu.org/licenses/>.
|
||||
*/
|
||||
package cn.smallbun.screw.core.metadata;
|
||||
|
||||
import java.io.Serializable;
|
||||
|
||||
@@ -1,3 +1,20 @@
|
||||
/*
|
||||
* screw-core - 简洁好用的数据库表结构文档生成工具
|
||||
* Copyright © 2020 SanLi (qinggang.zuo@gmail.com)
|
||||
*
|
||||
* This program is free software: you can redistribute it and/or modify
|
||||
* it under the terms of the GNU Lesser General Public License as published by
|
||||
* the Free Software Foundation, either version 3 of the License, or
|
||||
* (at your option) any later version.
|
||||
*
|
||||
* This program is distributed in the hope that it will be useful,
|
||||
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
* GNU Lesser General Public License for more details.
|
||||
*
|
||||
* You should have received a copy of the GNU Lesser General Public License
|
||||
* along with this program. If not, see <http://www.gnu.org/licenses/>.
|
||||
*/
|
||||
package cn.smallbun.screw.core.query.cachedb.model;
|
||||
|
||||
import cn.smallbun.screw.core.metadata.ColumnLength;
|
||||
|
||||
@@ -24,6 +24,7 @@ import cn.smallbun.screw.core.metadata.Database;
|
||||
import cn.smallbun.screw.core.metadata.PrimaryKey;
|
||||
import cn.smallbun.screw.core.query.AbstractDatabaseQuery;
|
||||
import cn.smallbun.screw.core.query.mariadb.model.*;
|
||||
import cn.smallbun.screw.core.query.mysql.model.MySqlColumnLengthModel;
|
||||
import cn.smallbun.screw.core.util.Assert;
|
||||
import cn.smallbun.screw.core.util.ExceptionUtils;
|
||||
import cn.smallbun.screw.core.util.JdbcUtils;
|
||||
@@ -174,6 +175,18 @@ public class MariaDbDataBaseQuery extends AbstractDatabaseQuery {
|
||||
*/
|
||||
@Override
|
||||
public List<MariadbColumnLengthModel> getColumnLength() throws QueryException {
|
||||
return new ArrayList<>();
|
||||
ResultSet resultSet = null;
|
||||
try {
|
||||
// 由于单条循环查询存在性能问题,所以这里通过自定义SQL查询数据库主键信息
|
||||
String sql = "SELECT A.TABLE_NAME, A.COLUMN_NAME, A.COLUMN_TYPE FROM INFORMATION_SCHEMA.COLUMNS A WHERE A.TABLE_SCHEMA = '%s' ORDER BY A.COLUMN_NAME";
|
||||
// 拼接参数
|
||||
resultSet = prepareStatement(String.format(sql, getDataBase().getDatabase()))
|
||||
.executeQuery();
|
||||
return Mapping.convertList(resultSet, MariadbColumnLengthModel.class);
|
||||
} catch (SQLException e) {
|
||||
throw new QueryException(e);
|
||||
} finally {
|
||||
JdbcUtils.close(resultSet);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -1,5 +1,23 @@
|
||||
/*
|
||||
* screw-core - 简洁好用的数据库表结构文档生成工具
|
||||
* Copyright © 2020 SanLi (qinggang.zuo@gmail.com)
|
||||
*
|
||||
* This program is free software: you can redistribute it and/or modify
|
||||
* it under the terms of the GNU Lesser General Public License as published by
|
||||
* the Free Software Foundation, either version 3 of the License, or
|
||||
* (at your option) any later version.
|
||||
*
|
||||
* This program is distributed in the hope that it will be useful,
|
||||
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
* GNU Lesser General Public License for more details.
|
||||
*
|
||||
* You should have received a copy of the GNU Lesser General Public License
|
||||
* along with this program. If not, see <http://www.gnu.org/licenses/>.
|
||||
*/
|
||||
package cn.smallbun.screw.core.query.mariadb.model;
|
||||
|
||||
import cn.smallbun.screw.core.mapping.MappingField;
|
||||
import cn.smallbun.screw.core.metadata.ColumnLength;
|
||||
import lombok.Data;
|
||||
|
||||
@@ -14,15 +32,34 @@ public class MariadbColumnLengthModel implements ColumnLength {
|
||||
/**
|
||||
* 表名
|
||||
*/
|
||||
@MappingField(value = "TABLE_NAME")
|
||||
private String tableName;
|
||||
|
||||
/**
|
||||
* 列名
|
||||
*/
|
||||
@MappingField(value = "COLUMN_NAME")
|
||||
private String columnName;
|
||||
|
||||
/**
|
||||
* 列长度
|
||||
*/
|
||||
private String columnLength;
|
||||
@MappingField(value = "COLUMN_TYPE")
|
||||
private String columnType;
|
||||
|
||||
/**
|
||||
* 列长度
|
||||
*
|
||||
* @return {@link String}
|
||||
*/
|
||||
@Override
|
||||
public String getColumnLength() {
|
||||
String leftParenthesis = "(";
|
||||
String rightParenthesis = ")";
|
||||
if (columnType.contains(leftParenthesis)) {
|
||||
return getColumnType().substring(columnType.indexOf(leftParenthesis) + 1,
|
||||
columnType.indexOf(rightParenthesis));
|
||||
}
|
||||
return "";
|
||||
}
|
||||
}
|
||||
|
||||
@@ -1,3 +1,20 @@
|
||||
/*
|
||||
* screw-core - 简洁好用的数据库表结构文档生成工具
|
||||
* Copyright © 2020 SanLi (qinggang.zuo@gmail.com)
|
||||
*
|
||||
* This program is free software: you can redistribute it and/or modify
|
||||
* it under the terms of the GNU Lesser General Public License as published by
|
||||
* the Free Software Foundation, either version 3 of the License, or
|
||||
* (at your option) any later version.
|
||||
*
|
||||
* This program is distributed in the hope that it will be useful,
|
||||
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
* GNU Lesser General Public License for more details.
|
||||
*
|
||||
* You should have received a copy of the GNU Lesser General Public License
|
||||
* along with this program. If not, see <http://www.gnu.org/licenses/>.
|
||||
*/
|
||||
package cn.smallbun.screw.core.query.mysql.model;
|
||||
|
||||
import cn.smallbun.screw.core.mapping.MappingField;
|
||||
|
||||
@@ -1,3 +1,20 @@
|
||||
/*
|
||||
* screw-core - 简洁好用的数据库表结构文档生成工具
|
||||
* Copyright © 2020 SanLi (qinggang.zuo@gmail.com)
|
||||
*
|
||||
* This program is free software: you can redistribute it and/or modify
|
||||
* it under the terms of the GNU Lesser General Public License as published by
|
||||
* the Free Software Foundation, either version 3 of the License, or
|
||||
* (at your option) any later version.
|
||||
*
|
||||
* This program is distributed in the hope that it will be useful,
|
||||
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
* GNU Lesser General Public License for more details.
|
||||
*
|
||||
* You should have received a copy of the GNU Lesser General Public License
|
||||
* along with this program. If not, see <http://www.gnu.org/licenses/>.
|
||||
*/
|
||||
package cn.smallbun.screw.core.query.oracle.model;
|
||||
|
||||
import cn.smallbun.screw.core.metadata.ColumnLength;
|
||||
|
||||
@@ -1,3 +1,20 @@
|
||||
/*
|
||||
* screw-core - 简洁好用的数据库表结构文档生成工具
|
||||
* Copyright © 2020 SanLi (qinggang.zuo@gmail.com)
|
||||
*
|
||||
* This program is free software: you can redistribute it and/or modify
|
||||
* it under the terms of the GNU Lesser General Public License as published by
|
||||
* the Free Software Foundation, either version 3 of the License, or
|
||||
* (at your option) any later version.
|
||||
*
|
||||
* This program is distributed in the hope that it will be useful,
|
||||
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
* GNU Lesser General Public License for more details.
|
||||
*
|
||||
* You should have received a copy of the GNU Lesser General Public License
|
||||
* along with this program. If not, see <http://www.gnu.org/licenses/>.
|
||||
*/
|
||||
package cn.smallbun.screw.core.query.postgresql.model;
|
||||
|
||||
import cn.smallbun.screw.core.metadata.ColumnLength;
|
||||
|
||||
@@ -1,3 +1,20 @@
|
||||
/*
|
||||
* screw-core - 简洁好用的数据库表结构文档生成工具
|
||||
* Copyright © 2020 SanLi (qinggang.zuo@gmail.com)
|
||||
*
|
||||
* This program is free software: you can redistribute it and/or modify
|
||||
* it under the terms of the GNU Lesser General Public License as published by
|
||||
* the Free Software Foundation, either version 3 of the License, or
|
||||
* (at your option) any later version.
|
||||
*
|
||||
* This program is distributed in the hope that it will be useful,
|
||||
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
* GNU Lesser General Public License for more details.
|
||||
*
|
||||
* You should have received a copy of the GNU Lesser General Public License
|
||||
* along with this program. If not, see <http://www.gnu.org/licenses/>.
|
||||
*/
|
||||
package cn.smallbun.screw.core.query.sqlservice.model;
|
||||
|
||||
import cn.smallbun.screw.core.metadata.ColumnLength;
|
||||
|
||||
@@ -17,10 +17,10 @@
|
||||
#
|
||||
|
||||
#URL
|
||||
url=jdbc:mysql://xxx.xxx.xxx.xxx:3306/xxx?useUnicode=true&characterEncoding=utf-8&useSSL=true&serverTimezone=GMT%2B8&useInformationSchema=true
|
||||
url=jdbc:mysql://127.0.0.1:3306/smallbun?useUnicode=true&characterEncoding=utf-8&useSSL=true&serverTimezone=GMT%2B8&useInformationSchema=true
|
||||
#\u9A71\u52A8
|
||||
driver=com.mysql.cj.jdbc.Driver
|
||||
#\u7528\u6237\u540D
|
||||
username=username
|
||||
username=root
|
||||
#\u5BC6\u7801
|
||||
password=password
|
||||
password=root
|
||||
Reference in New Issue
Block a user