首页 > 编程语言 > 详细

Java存取blob数据

时间:2021-06-18 09:25:07      阅读:20      评论:0      收藏:0      [点我收藏+]

背景

在项目开发中,经常会遇到需要存储不定长的对象数组,如上传一组图片、添加一道题目等等,这个时候在数据库中存储一般需要用到存储长度较大的blob类型,在java的实体类中对应blob类型的是byte数组。

思路

为了存储的数据格式兼容性更高,我采用的是借助json的方式来处理,即存储前,我将对象整理为json数组,然后通过jsonArray转为byte数组存储到数据库中,读取时,将byte数组再反转为jsonArry即可。这样做的好处是,json是跨平台的,java存的这部分数据其他平台也能够处理,且java在处理过程中不需要知道这个对象的内部结构,这一点是非常重要的,尤其是在byte数组转对象的过程中,如果存的是一个java对象,那么必须要知道该对象的具体结构才能反转出来,反转过程非常复杂,这样该对象也不易再进行扩展,json则可以随时扩展,改变其中的结构。

方法类

import com.alibaba.fastjson.JSON;
import com.alibaba.fastjson.JSONArray;

public class JsonArrUtils {

    /**
     * json数组转byte []
     */
    public static byte[] toByteArray(JSONArray obj) {
        return obj.toString().getBytes();
    }

    /**
     * byte []转json数组
     */
    public static JSONArray toJsonArray(byte [] bytes) {
        try {
            return JSON.parseArray(new String(bytes));
        }
        catch (Exception e) {
            return null;
        }
    }
}

操作

//存对象
entity.setValue(JsonArrUtils.toByteArray(dto.getValue()));
//取对象
JsonArrUtils.toJsonArray(entity.getValue());

Java存取blob数据

原文:https://www.cnblogs.com/bGpi/p/14897833.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!