gpt4 book ai didi

java - 使用数组在 MySQL 中插入值

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

我有一个非常大的输入表单,包含 90 多个字段,我需要将所有值存储在数据库中。

以下只是一个测试示例代码,用于展示我现在如何插入我的值。

public void insertToDB() {
Connection con = SoftwareConnectionFactory.getInstance().getConnection();
PreparedStatement ps = null;

String sql = "INSERT INTO person.test (name, class, subject) "
+ "VALUES(?,?,?)";
try {
ps = con.prepareStatement(sql);
ps.setString(1, name);
ps.setString(2, class);
ps.setString(3, subject);

ps.executeUpdate();

} catch (Exception e) {
log.error("error storing into db: " + e.getMessage());
} finally {
SoftwareConnectionFactory.getInstance().closeConnection(con);
}
}

上面的代码工作得很好,但我试图通过在数组的帮助下设置它来找到一种简洁的编码方法。我研究了以下内容:

String[] check = { name, class, subject };
Array arrayCcheck = con.createArrayOf("VARCHAR", check);

我当前的 dbpc 不支持 createArrayOf,我正在尝试寻找替代方法来执行此操作。我已经尝试更新我的 jar 文件,但上述方法仍然不起作用。我试图让我的代码尽可能短。任何帮助表示赞赏。谢谢。

最佳答案

我建议如下:

将表中的字段数量减少为仅当前用于搜索查询的字段(您也可以考虑将来可能使用的字段)。因此,您将不会有 90 个字段的表。

要存储其他所有内容,您可以将对象解析为 JSON 并将整个对象存储在一个附加表字段中。当您从数据库中读取数据时,您将解析它。

因此,你会得到类似的结果:

ObjectWith90Fields obj;
String sql = "INSERT INTO person.test (name, class, json) "
+ "VALUES(?,?,?)";
try {
ps = con.prepareStatement(sql);
ps.setString(1, obj.getName());
ps.setString(2, obj.getClass());
ps.setString(3, createJson(obj));

ps.executeUpdate();

}

阅读

ObjectWith90Fields obj;
String sql = "SELECT * FROM person.test";
try {
st = con.createStatement(sql);
ResultSet rs = st.execute(sql);
ObjectWith90Fields obj = parseJson(rs.getString("json"));

}

关于java - 使用数组在 MySQL 中插入值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57467596/

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