新增clob字段到数据库表中,按一定的样式插入储存。

本文介绍了如何将JSON格式的数据插入到数据库中,包括使用在线代码格式化工具、解析请求参数并拼接成JSON字符串的过程,以及SQL语句中插入CLOB字段的方法。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

        介绍此文前,先分享一个在线代码格式化工具(http://tool.oschina.net/codeformat/json),可以将json数据格式化。

       需要插入到库中的字段格式(CLOB字段),又称大数据字段,详细了解去百度查下。

    如下是我希望插入到库中的json格式数据:

      {"files":[{"filename": "1.jpg","url": "12368176238716.jpg","sort": 0},
            {"filename": "2.doc","url": "71987439845793.doc","sort": 1},
            {"filename": "3.xls","url": "098867546557657.xls","sort": 2}]}


   如何实现呢?

  当然是拼字符串了,解释很苍白,直接贴代码了:

   /**
     * 新增
     *
     * @param request
     * @return
     */
    @RequestMapping("/addNotice")
    @ResponseBody
    public Object addNotice(HttpServletRequest request) {
        Map<String, String> param = super.getParamValues(request);
        String paramsStr = "{\"files\":[";
        String[] fnames = request.getParameterValues("fname");
        String[] urls = request.getParameterValues("furl");
        if(fnames!=null){
            for (int i = 0; i < fnames.length; i++) {
                paramsStr += "{\"filename\": \"" + fnames[i] + "\",\"url\": \""
                        + urls[i] + "\",\"sort\": " + i + "}";
                if(i < fnames.length-1){
                    paramsStr +=",";
                }
            }
            paramsStr += "]}";
            /*paramsStr拼接格式按如下样式:
             * {"files":[{"filename": "1.jpg","url": "12368176238716.jpg","sort": 0},
                          {"filename": "2.doc","url": "71987439845793.doc","sort": 1},
                         {"filename": "3.xls","url": "098867546557657.xls","sort": 2}
                        ]}*/
            param.put("params", paramsStr);
        }
        groupnoticeService.pushNotice(param);
        return 1;
    }


sql语句里面关于插入clob字段的写法,请见下面红色字体所示:

<insert id="addNotice" parameterType="Map">
        insert into td_pushmessage t
            (t.msgid,t.time,t.unit,t.title,t.content,t.gid,t.msgtype,t.creator,
            t.CREATEDEPT,t.PARAMS,t.BEGINTIME,t.DEADLINE,t.CREATETIME)
        values
            (
            #{msg_id,jdbcType=VARCHAR},
            #{time,jdbcType=VARCHAR},
            #{unit,jdbcType=VARCHAR},
            #{title,jdbcType=VARCHAR},
            #{content,jdbcType=VARCHAR},
            #{gid,jdbcType=VARCHAR},
            #{msgtype,jdbcType=VARCHAR},
            #{creator,jdbcType=VARCHAR},
            #{createdept,jdbcType=VARCHAR},
            #{params,jdbcType=CLOB},
                <if test="clocked != null and clocked !=''">
                    to_date(#{clocked,jdbcType=VARCHAR},'yyyy-mm-dd hh24:mi:ss'),
                </if>
                <if test="clocked == null or clocked ==''">
                    sysdate,
                </if>
                to_date(#{deadline,jdbcType=VARCHAR},'yyyy-mm-dd hh24:mi:ss'),
            sysdate)
    </insert>

效果如下:


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值