数据库中表数据类型是Blob的处理

一、引用

1.1 varchar和blob的区别

但我们用varchar 255 来存储数据的时候,可能不够用,甚至使用text也不够,那这个时候就可以使用Blob类型

在这里插入图片描述
在这里插入图片描述

1.2 如何在navicat上面查看blob的数据

在这里插入图片描述

二、代码的使用

2.1 方法一:用String接受和存储(推荐,例子)

我们可以定义一个实体类,数据库中blob类型的字段在实体类中定义成String类型;

2.2 方法二:用byte[]接受和存储

我们可以定义一个实体类,数据库中blob类型的字段在实体类中定义成byte[] 类型;

java的byte[] 但是这样数据太长了,所以可以使用ByteBuffer 甚至可以用string类型去取出来
在这里插入图片描述

前端还是传递一个字符串过来,然后我们把字符串转换成byte[] 存储进ByteBuffer;

- 存储
String content = applyDto.getContent();
 ByteBuffer buffer = ByteBuffer.wrap(content.getBytes());
 applyBean.setContent(buffer);


- 取出
//取出来 ByteBuffer转换为字符串
String s = StandardCharsets.UTF_8.decode(buffer).toString();
System.out.println(s);

三、例子

在这里插入图片描述

直接使用字符串String来接受blob

在这里插入图片描述

我们定义一个contentvo,来作为存储和接受这个blob字段的数据

在这里插入图片描述

实体类的代码(mybatisplus)

JSONArray itemArray = new JSONArray();
                for (MaterialDateZoneListItem totalItem : totalItems) {
                    JSONObject jsonObject = new JSONObject();
                    List<Long> materialprogram = totalItem.getMaterialprogram();
                    jsonObject.put("startDate", totalItem.getStartdate());
                    jsonObject.put("endDate", totalItem.getEnddate());
                    jsonObject.put("mediaList", totalItem.getMd());
                    jsonObject.put("gcdNumber", totalItem.getGCDnumber());
                    jsonObject.put("idsSize", materialprogram.size());
                    jsonObject.put("ids", materialprogram);
                    itemArray.add(jsonObject);
                }

                Item item = new Item();
                item.setUuid(uuid);
                item.setMode(1);
                item.setRemark(remark);
                item.setCreateBy(userId);
                item.setCreateTime(now);
                item.setContent(itemArray.toJSONString());
                itemMapper.insert(item);
                Item item1 = itemMapper.selectList(null).get(2);

                String content1 = item1.getContent();
                List<ItemContentVo> itemContentVos1 = JSONArray.parseArray(content1, ItemContentVo.class);
                System.out.println();
  • 0
    点赞
  • 8
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

LC超人在良家

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值