【问题标题】:How to insert JSONObject inside MySQL using java?如何使用 java 在 MySQL 中插入 JSONObject?
【发布时间】:2017-06-16 09:08:44
【问题描述】:

我正在尝试在我拥有的 MySQL 数据库中插入一个包含几个 JSONArrays 的 JSONObject。

这是我目前正在尝试做的:

JSONObject fiveMin = new JSONObject();
JSONArray data = new JSONArray();
data.add(45);

fiveMin.put("data", data);

String query = "UPDATE frame_data.all_frame_data" 
            + "SET 5_min_data = " + fiveMin
            + " WHERE stock_id = 1";

stmt.executeUpdate(query);

但是,它给了我一个空指针异常。

有人知道如何解决这个问题吗?我已经坚持了好几天了

【问题讨论】:

  • 开始+ " SET 5_min_data = " + fiveMin - 添加一个空格
  • 从你的代码和缺少stacktrace,没法说

标签: java mysql json jdbc


【解决方案1】:

您的查询不正确,您需要在 frame_data.all_frame_data 之后添加一个空格,因为现在看起来像 frame_data.all_frame_dataSET 5_min_data,请将您的查询更改为:

String query = "UPDATE frame_data.all_frame_data SET 5_min_data = " + fiveMin
            + " WHERE stock_id = 1";

其次,我认为 MySql 中没有 JSONObject 类型,所以我认为您正在使用 varchar 或文本来存储数据,因此 fiveMin 应该转换为字符串而不是像您那样设置例如:

fiveMin.toString();

您的查询应如下所示:

String query = "UPDATE frame_data.all_frame_data SET 5_min_data = '" + fiveMin.toString()
            + "' WHERE stock_id = 1";

我建议使用 PreparedStatement 你可以在这里了解更多信息:PreparedStatement

谢谢。

【讨论】:

  • 缺少的空格是拼写错误。但无论如何,我试图在 JSON 数据类型中插入一个 JSONObject。将其转换为字符串也给了我一个空指针。关于我应该做什么的任何想法/替代方案?我想在 mysql 中有一个类似数组的结构,我可以在 Java 中操作
猜你喜欢
  • 2011-03-30
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2019-09-30
  • 2017-06-20
  • 1970-01-01
  • 2013-06-16
  • 1970-01-01
相关资源
最近更新 更多