mysql - 使用 Java 的 JSON MySQL 数据库

标签 mysql json database

我目前正在编写一个 Java 程序,并决定使用 JSON MySQL 作为我的数据库。 将变量插入 JSON MySQL 数据库的正确语法是什么。

表:

mysql> desc sales;
+-------+---------+------+-----+---------+-------+
| Field | Type    | Null | Key | Default | Extra |
+-------+---------+------+-----+---------+-------+
| id    | int(11) | YES  |     | NULL    |       |
| sale  | json    | YES  |     | NULL    |       |
+-------+---------+------+-----+---------+-------+

Java 代码:

String name = "Izzat";
String place = "Cheras";

String sql = "INSERT INTO sales(id, sale) VALUES ('9','{\"Name\":"+name+",\"Place\":"+place+"}')";

我遇到了一个错误:

INSERT INTO sales(id, sale) VALUES ('9','{"Nama":Izzat,"Place":"Cheras"}') 数据截断:无效的 JSON 文本:“无效值。”在“sales.sale”列的值的第 8 位。

请问正确的语法是什么?

提前谢谢你。

最佳答案

错误的直接原因似乎是数据缺少双引号。所以这应该有效:

String sql = "INSERT INTO sales(id, sale) ";
sql += "VALUES (9, '{\"Name\": \"" + name + ", \"Place\": \"" + place + "\"}')";

Demo

但是,鉴于 JSON 数据来自您的 Java 代码,您应该考虑使用一种可用的 JSON API 来生成 JSON 字符串。如您所见,手动构建这样的 JSON 字符串很容易出错。

关于mysql - 使用 Java 的 JSON MySQL 数据库,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51868713/

相关文章:

c# - “System.Data.SqlClient.SqlException”如何修复? Visual Studio 2015

json - 无法使 @JsonIdentityInfo 注释起作用

java - 在 Java 中将图像的元数据转换为 JSON

javascript - 如何为 CouchApp(或任何 JSON 文档)生成 HTML 表单

PHP 登录重定向循环

database - Oracle where 子句日期选择不起作用

java - 多个一对多关系的数据库 View

php - SQL 查询中的条件

php - 重复值不断删除其他产品页面

mysql - 一个表中的 SQL 行不在另一个表的多个字段中