gpt4 book ai didi

java - 如何在 Java 中存储数据库表架构(>50 列)

转载 作者:行者123 更新时间:2023-12-01 14:23:24 25 4
gpt4 key购买 nike

您好,我有一个场景,我从文件中读取表架构,并且需要使用 JDBC 创建表。

例如文件包含

{"ColumnTypes":["int32","fstring32"],"ColumnNames":["ProductId",","ProductName"]}

现在我需要使用 JDBC 执行查询在运行时创建表。假设我使用数组创建表,半数组包含列名称,半数组包含数据类型,那么我将不得不手动输入所有值,有没有最有效的方法?

创建表tb1(arr[1],arr[26],arr[2],arr[26].....arr[25],arr[50])

请指导。提前致谢。

最佳答案

如果您的数据库定义确实仅包含名称/类型对,并且没有索引、外键引用或其他约束等更多信息,则 Map<String, String>就足够了。您可以创建一个类,例如TableDef :

public class TableDef {
private final String tableName;
private final Map<String, String> colDef = new LinkedHashMap<String, String>();

public TableDef(String tableName) {
this.tableName = tableName;
}

public void addColumn(String name, String type) {
if (colDef.containsKey(name))
throw new IllegalArgumentException(name + " column already added");
colDef.put(name, type);
}

public String getCreateTable() {
String ddl = "CREATE TABLE " + tableName + "(";
for (Map.Entry<String, String> col : colDef.entrySet()) {
// add column to ddl
}
return ddl + ")";
}
}

或者,如果您可以确定不存在重复的列名,则可以构建 CREATE TABLE在读取模式定义时动态声明。但是,只要您没有数千个列和表,它就不会对性能产生太大影响。

要以有效的方式插入批量数据,请使用 look at this answer .

关于java - 如何在 Java 中存储数据库表架构(>50 列),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17363598/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com