第七色在线视频,2021少妇久久久久久久久久,亚洲欧洲精品成人久久av18,亚洲国产精品特色大片观看完整版,孙宇晨将参加特朗普的晚宴

為了賬號(hào)安全,請(qǐng)及時(shí)綁定郵箱和手機(jī)立即綁定
已解決430363個(gè)問題,去搜搜看,總會(huì)有你想問的

查詢從 Java 層在 DB 中的 Saved Json 中插入新的 json 字符串

查詢從 Java 層在 DB 中的 Saved Json 中插入新的 json 字符串

繁華開滿天機(jī) 2022-11-02 17:08:07
我們?cè)?DB 中有一列以字符串格式保存 JSON 值,例如:{"listOfPlaces" : [1,2,3], "segment" : 1}現(xiàn)在,我們需要從帶有 UPDATE Query 的 JAVA 層更新 JSON。例如:我們需要添加 activityId : 1這里保存在 DB 的 JSON 中。這樣我們就可以將 JSON 存儲(chǔ)為:{"listOfPlaces" : [1,2,3], "segment" : 1, activityId : 1}我嘗試使用下面提到的代碼,但不確定它是否準(zhǔn)確。MapSqlParameterSource parameters = new MapSqlParameterSource();parameters.addValue(newFieldName, newFilterCriteriaForAddition.getName());parameters.addValue(newFieldValue, newFilterCriteriaForAddition.getDefaultValue());int update = namedParameterJdbcTemplate.update(Constant.SQL_TO_ADD_FILTER_CRITERIA_IN_SAVED_REPORT, parameters);和查詢是:"UPDATE adv.sav_table SET filter_crtr = LEFT(rpt_filter_crtra, -1)  + "||CONCAT("+ ",\""+ ":newFieldName:"+":"+newFieldValue"+"}"+") "
查看完整描述

2 回答

?
當(dāng)年話下

TA貢獻(xiàn)1890條經(jīng)驗(yàn) 獲得超9個(gè)贊

無需字符串操作:


如果該列被定義為jsonb(它應(yīng)該是),您可以簡(jiǎn)單地連接新值:


update adv.sav_table 

   SET filter_crtr  = filter_crtr || '{"activityId":1}'

where ...;

這可以通過 PreparedStatement 來完成:


update adv.sav_table 

   SET filter_crtr  = filter_crtr || cast(? as jsonb)

where ...;

然后使用


PreparedStatement pstmt  = connection.prepareStatement("UPDATE ...");

psmt.setString(1, "{\"activityId\":1}");


查看完整回答
反對(duì) 回復(fù) 2022-11-02
?
慕無忌1623718

TA貢獻(xiàn)1744條經(jīng)驗(yàn) 獲得超4個(gè)贊

您可以從包含 JSON 的數(shù)據(jù)庫中獲取當(dāng)前必填字段,并通過 UPDATE 查詢將其替換為新的 JSON

并在 JSON 中添加新條目,您可以嘗試這種方式 ->

變量 obj = {};

obj = { "1": "a", "2": "b" };

obj["3"] = "c";


查看完整回答
反對(duì) 回復(fù) 2022-11-02
  • 2 回答
  • 0 關(guān)注
  • 150 瀏覽

添加回答

舉報(bào)

0/150
提交
取消
微信客服

購課補(bǔ)貼
聯(lián)系客服咨詢優(yōu)惠詳情

幫助反饋 APP下載

慕課網(wǎng)APP
您的移動(dòng)學(xué)習(xí)伙伴

公眾號(hào)

掃描二維碼
關(guān)注慕課網(wǎng)微信公眾號(hào)