iis服务器助手广告广告
返回顶部
首页 > 资讯 > 数据库 >Mysql存储二进制对象数据问题怎么解决
  • 373
分享到

Mysql存储二进制对象数据问题怎么解决

2023-07-05 12:07:42 373人浏览 泡泡鱼
摘要

这篇“Mysql存储二进制对象数据问题怎么解决”文章的知识点大部分人都不太理解,所以小编给大家总结了以下内容,内容详细,步骤清晰,具有一定的借鉴价值,希望大家阅读完这篇文章能有所收获,下面我们一起来看看这篇“Mysql存储二进制对象数据问题

这篇“Mysql存储二进制对象数据问题怎么解决”文章的知识点大部分人都不太理解,所以小编给大家总结了以下内容,内容详细,步骤清晰,具有一定的借鉴价值,希望大家阅读完这篇文章能有所收获,下面我们一起来看看这篇“Mysql存储二进制对象数据问题怎么解决”文章吧。

    mysql存储二进制对象数据

    首先数据库存储一个Object对象

    需要在数据库表中定义一个blob类型的字段

    Mysql存储二进制对象数据问题怎么解决

    与数据库对应的实体类

    Mysql存储二进制对象数据问题怎么解决

    编写一个操作二进制的工具

    import java.io.*; public class BlobUtil {         public static byte[] setObject(Object object) {        ByteArrayOutputStream baos = null;        ObjectOutputStream out = null;        try {            baos = new ByteArrayOutputStream();            out = new ObjectOutputStream(baos);            out.writeObject(object);        } catch (Exception e) {            e.printStackTrace();        } finally {            if (out != null) {                try {                    out.close();                } catch (IOException e) {                    e.printStackTrace();                }            }            if (baos != null) {                try {                    baos.close();                } catch (IOException e) {                    e.printStackTrace();                }            }        }        return baos.toByteArray();    }         public static Object getObject(byte[] bytes) {        Object obj = null;        ByteArrayInputStream bais = null;        ObjectInputStream in = null;        try {            bais = new ByteArrayInputStream(bytes);            in = new ObjectInputStream(bais);            obj = in.readObject();        } catch (Exception e) {            e.printStackTrace();        } finally {            if (in != null) {                try {                    in.close();                } catch (IOException e) {                    e.printStackTrace();                }            }            if (bais != null) {                try {                    bais.close();                } catch (IOException e) {                    e.printStackTrace();                }            }        }        return obj;    }}

    需要转换为byte[]的对象必须实现序列化和生成一个序列化ID,生成一个序列化ID是为了解决类当中一但有修改,反序列化时序列化ID就会对应不上,如下图:

    类中如果有其他类为变量也需要实现序列化,否则从数据库中取出数据然后反序列化成Object对象的时候会直接报错

    对user的数据进行操作

    import java.io.Serializable; public class UserVO implements Serializable {     private static final long serialVersionUID = 1L;     private String userId;     private String userName;     private String passWord;     public String getUserId() {        return userId;    }     public void setUserId(String userId) {        this.userId = userId;    }     public String getUserName() {        return userName;    }     public void setUserName(String userName) {        this.userName = userName;    }     public String getPassword() {        return password;    }     public void setPassword(String password) {        this.password = password;    }}

    调用二进制工具类来转换数据然后进行存取就可以了。

    测试功能

    public class TestMain {     public static void main(String[] args) {        UserVO user = new UserVO();        user.setUserId("123456");        user.setUserName("张三");        byte[] dataValue = BlobUtil.setObject(user);        System.out.println("=====对象转换成blob类型数据====="+Arrays.toString(dataValue));        UserVO userVO = (UserVO) BlobUtil.getObject(dataValue);        System.out.println("=====blob类型数据转换成对象====="+ JSONObject.tojsONString(userVO));    }}

    打印输出

    =====对象转换成blob类型数据=====[-84, -19, 0, 5, 115, 114, 0, 53, 99, 111, 109, 46, 100, 111, 108, 112, 104, 105, 110, 46, 109, 111, 100, 117, 108, 101, 115, 46, 116, 109, 115, 46, 100, 111, 109, 97, 105, 110, 46, 99, 117, 115, 116, 111, 109, 101, 114, 115, 101, 114, 118, 105, 99, 101, 46, 85, 115, 101, 114, 86, 79, 0, 0, 0, 0, 0, 0, 0, 1, 2, 0, 3, 76, 0, 8, 112, 97, 115, 115, 119, 111, 114, 100, 116, 0, 18, 76, 106, 97, 118, 97, 47, 108, 97, 110, 103, 47, 83, 116, 114, 105, 110, 103, 59, 76, 0, 6, 117, 115, 101, 114, 73, 100, 113, 0, 126, 0, 1, 76, 0, 8, 117, 115, 101, 114, 78, 97, 109, 101, 113, 0, 126, 0, 1, 120, 112, 112, 116, 0, 6, 49, 50, 51, 52, 53, 54, 116, 0, 6, -27, -68, -96, -28, -72, -119]
    =====blob类型数据转换成对象====={"userId":"123456","userName":"张三"}

    Mysql存储二进制大型对象类型对照

    MySql MediumBlob——MySql的Bolb四种类型

    MySQL中,BLOB是一个二进制大型对象,是一个可以存储大量数据的容器,它能容纳不同大小的数据。

    BLOB类型实际是个类型系列(TinyBlob、Blob、MediumBlob、LongBlob),除了在存储的最大信息量上不同外,他们是等同的。

    Mysql存储二进制对象数据问题怎么解决

    以上就是关于“Mysql存储二进制对象数据问题怎么解决”这篇文章的内容,相信大家都有了一定的了解,希望小编分享的内容对大家有帮助,若想了解更多相关的知识内容,请关注编程网数据库频道。

    您可能感兴趣的文档:

    --结束END--

    本文标题: Mysql存储二进制对象数据问题怎么解决

    本文链接: https://www.lsjlt.com/news/351638.html(转载时请注明来源链接)

    有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

    本篇文章演示代码以及资料文档资料下载

    下载Word文档到电脑,方便收藏和打印~

    下载Word文档
    猜你喜欢
    • Mysql存储二进制对象数据问题怎么解决
      这篇“Mysql存储二进制对象数据问题怎么解决”文章的知识点大部分人都不太理解,所以小编给大家总结了以下内容,内容详细,步骤清晰,具有一定的借鉴价值,希望大家阅读完这篇文章能有所收获,下面我们一起来看看这篇“Mysql存储二进制对象数据问题...
      99+
      2023-07-05
    • Mysql存储二进制对象数据问题
      目录mysql存储二进制对象数据首先数据库存储一个Object对象与数据库对应的实体类编写一个操作二进制的工具类Mysql存储二进制大型对象类型对照MySql MediumBlob——MySql的...
      99+
      2023-03-14
      Mysql存储二进制 Mysql存储二进制对象 Mysql二进制对象数据
    • mysql怎么存储二进制数据
      在MySQL中存储二进制数据可以使用BLOB(Binary Large Object)数据类型。BLOB是一种二进制数据类型,可以存...
      99+
      2024-04-09
      mysql
    • mysql中怎么存储二进制数据流
      mysql中怎么存储二进制数据流,很多新手对此不是很清楚,为了帮助大家解决这个难题,下面小编将为大家详细讲解,有这方面需求的人可以来学习下,希望你能有所收获。以下即为范例代码 --- 按照说明编译即可用,稍...
      99+
      2024-04-02
    • c语言怎么以二进制形式存储数据
      在C语言中,可以使用二进制形式存储数据的方法是使用位操作符。以下是一些常用的位操作符: 按位与(&):将两个数的对应位进行...
      99+
      2024-04-09
      c语言
    • Redis缓存-序列化对象存储乱码问题的解决
      使用Redis缓存对象会出现下图现象: 键值对都是乱码形式。 解决以上问题: 如果是xml配置的 我们直接注入官方给定的keySerializer,valueSerializer,...
      99+
      2024-04-02
    • hadoop数据怎么迁移至对象存储
      将Hadoop数据迁移至对象存储可以通过以下步骤实现: 确保您已经设置好了对象存储服务,并拥有相应的权限和凭证。 使用Hadoop...
      99+
      2024-04-11
      hadoop
    • vue二进制转图片显示问题怎么解决
      这篇文章主要介绍“vue二进制转图片显示问题怎么解决”的相关知识,小编通过实际案例向大家展示操作过程,操作方法简单快捷,实用性强,希望这篇“vue二进制转图片显示问题怎么解决”文章能帮助大家解决问题。二进制转图片显示 后端返回的是byte[...
      99+
      2023-06-30
    • 如何解决Linux中二进制包安装MySQL的问题
      这篇文章将为大家详细讲解有关如何解决Linux中二进制包安装MySQL的问题,小编觉得挺实用的,因此分享给大家做个参考,希望大家阅读完这篇文章后可以有所收获。第一步:安装相关的依赖yum install perl-Data-Dumper第二...
      99+
      2023-06-09
    • redis实际存储问题怎么解决
      在处理Redis实际存储问题时,可以采取以下方法来解决:1. 压缩存储空间:使用压缩算法对存储的数据进行压缩,以减少存储占用空间。R...
      99+
      2023-09-11
      redis
    • 如何解决MSSQL中将截断字符串或二进制数据问题
      这篇文章将为大家详细讲解有关如何解决MSSQL中将截断字符串或二进制数据问题,小编觉得挺实用的,因此分享给大家做个参考,希望大家阅读完这篇文章后可以有所收获。地图数据存放在sqlserver 2008中,使...
      99+
      2024-04-02
    • Redis存储用户token问题怎么解决
      这篇文章主要介绍了Redis存储用户token问题怎么解决的相关知识,内容详细易懂,操作简单快捷,具有一定借鉴价值,相信大家阅读完这篇Redis存储用户token问题怎么解决文章都会有所收获,下面我们一起来看看吧。Redis 存储用户tok...
      99+
      2023-07-05
    • 大数据存储:Python是解决问题的关键吗?
      随着数据量的不断增长,大数据存储已经成为了现代社会的一个重要问题。对于大数据的存储,Python作为一门高效且易于学习的编程语言,能否成为解决问题的关键呢?本文将探讨Python在大数据存储中的应用,并通过演示代码来展示Python的优势...
      99+
      2023-11-04
      存储 面试 大数据
    • PHP数据库存储乱码问题的解决方法
      PHP是一种功能强大的服务器端脚本语言,被广泛应用于Web开发领域。在使用PHP进行数据库操作时,有时候会遇到数据库存储乱码的问题,特别是涉及到中文数据时。本文将介绍PHP数据库存储乱...
      99+
      2024-04-02
    • 怎么解决MySQL误删数据问题
      本篇内容主要讲解“怎么解决MySQL误删数据问题”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“怎么解决MySQL误删数据问题”吧!第一步:保证mysql已经开启...
      99+
      2024-04-02
    • 怎么解决数据库存储设备IBM DS5020故障离线问题
      这篇文章主要介绍“怎么解决数据库存储设备IBM DS5020故障离线问题”,在日常操作中,相信很多人在怎么解决数据库存储设备IBM DS5020故障离线问题问题上存在疑惑,小编查阅了各式资料,整理出简单好用...
      99+
      2024-04-02
    • C#对象浏览器问题怎么解决
      这篇文章主要介绍“C#对象浏览器问题怎么解决”,在日常操作中,相信很多人在C#对象浏览器问题怎么解决问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答”C#对象浏览器问题怎么解决”的疑惑有所帮助!接下来,请跟着小编...
      99+
      2023-06-17
    • mysql跨数据库join问题怎么解决
      在MySQL中,跨数据库进行JOIN操作可以通过在JOIN查询中指定数据库名和表名的方式来实现。具体方法如下: 1.使用完全限定表名...
      99+
      2024-04-22
      mysql
    • Redis中热点key存储问题怎么解决
      今天小编给大家分享一下Redis中热点key存储问题怎么解决的相关知识点,内容详细,逻辑清晰,相信大部分人都还太了解这方面的知识,所以分享这篇文章给大家参考一下,希望大家阅读完这篇文章后有所收获,下面我们一...
      99+
      2024-04-02
    • 云主机存储出问题了怎么解决
      如果云主机存储出现问题,可以尝试以下解决方法:1. 检查连接:确保云主机与存储设备之间的连接正常。可以尝试重新插拔数据线或更换连接端...
      99+
      2023-09-08
      云主机
    软考高级职称资格查询
    编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
    • 官方手机版

    • 微信公众号

    • 商务合作