Postgres中的NamedParameterJdbcTemplate和JSON

时间:2015-11-16 23:44:53

标签: java json spring postgresql

是否可以使用SpringFramework中的NamedParameterJDBCTemplate类将json插入到postgresql json列中,我得到一个PSQLException: No hstore extension installed.从此我收集到NamedParameterJDBCTemplate正在尝试存储值为hstore。

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

该值作为Map<String, String>

存储在java中

1 个答案:

答案 0 :(得分:3)

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

  1. 使用jackson库或GSON从Map创建json_tring。
  2. 创建PGObject并填充如下所示的值。
  3. 在SQL准备语句中使用PGObject。
  4. 希望这会有所帮助。

    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);";