java - Postgres 中的 NamedParameterJdbcTemplate 和 JSON

标签 java json spring postgresql

是否可以使用 NamedParameterJDBCTemplate 将 json 插入到 postgresql json 列中?在 SpringFramework 中上课,我得到一个 PSQLException: No hstore extension installed.由此我得知 NamedParameterJDBCTemplate正在尝试将值存储为 hstore。

有没有办法告诉我 NamedParameterJDBCTemplate将值作为json 插入到查询中?

该值在 java 中存储为 Map<String, String>

最佳答案

这适用于我使用 namedjdbctemplate 将 Map 作为 jsonb 插入。

  1. 可以使用 jackson 库或 GSON 从 Map 创建 json_string。
  2. 创建 PGObject 并填充如下值。
  3. 在您的 SQL 准备语句中使用 PGObject。

希望这对您有所帮助。

ObjectMapper objectMapper = new ObjectMapper();
PGobject jsonObject = new PGobject();
String Map_Json_String = objectMapper.writeValueAsString(your_map);
jsonObject.setType("jsonb");
jsonObject.setValue(Map_Json_String);

String final insertSql = "INSERT INTO \"Table_Name\""
            + " VALUES (:jsonObject);";

关于java - Postgres 中的 NamedParameterJdbcTemplate 和 JSON,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33746693/

相关文章:

java - 如何最好地将 byte[] 数组转换为字符串缓冲区

json - 在 Flex 4 中更快地加载 JSON

spring - org.hibernate.TransientObjectException : The given object has a null identifier

java - 使用 Mockito 进行 Spring Controller 测试,空指针异常

java - 尝试在 Lucene 中计算 Jaccard 系数时得到混合结果

java - 在 XML 中存储值 NUL (ASCII)

java - 对象引用案例研究

css - 如何在 cytoscapejs 中指定离散映射器样式?

java - :url includeParams ="none" with s:select didn't work inside s:form

java - 更改数据库设计以改进 Spring Data JPA 软删除和查询身份验证