数据库的准备 - MySQL 准备一个字段存储Java对象序列化后的字段
因为不能直接用字符串,所以用成了字节数组(Java)
所以各位可以根据自己的需要选择,以下的几个类型,作为参考
TinyBlob:最大 255
Blob:最大 65KB
MediumBlob:最大 16MB
LongBlob:最大 4GB
我自己的是Blob
Java代码的准备 需要的知识存储,IO以及Mybatis Plus的基础操作
这里用的是SpringBoot + MybatisPlus组合
当然使用Spring + Spring mvc也是同理
1.准备两个实体类
// 数据库的实体
class First {
private int id;
// 存储序列化后的对象
private byte[] bit;
}// 存入的对象 - 需要序列化的对象
class Second implements Serializable {
// 确保唯一即可
private static final long serialVersionUID = 1L;
.....
}
2.Controller层 - 存储/写操作
// 存储序列化后的字节
byte[] bit;
// 操作字节数组的IO
ByteArrayOutputStream byt = new ByteArrayOutputStream();
// 操作对象的IO
ObjectOutputStream obj = new ObjectOutputStream(byt);
// 将需要序列化的对象写入
obj.writeObject(new Second());
// 转成byte数组
bit = byt.toByteArray();
First first = new First();
first.setBit(bit);
// 利用sql语句进行增加/修改操作
xxxMapper.xxxx(first);
3.Dao层
update tableName set bit = #{bit,typeHandler=org.apache.ibatis.type.BlobTypeHandler} where id = 1
解释:,typeHandler=org.apache.ibatis.type.BlobTypeHandler
因为byte[]不能直接存入为blob所以,需要处理器做相关的处理
至此存入Java对象已完成
4.Controller层 - 取出/读操作
// Mybatisplus的自带方法
First first = xxxxMapper.selectById(1);
// 字节流,将数据库存储读出来
ByteArrayInputStream bis = new ByteArrayInputStream(first .getBit());
// 将获得到的字节流对象转换成对象流
ObjectInputStream objectInputStream=new ObjectInputStream(bis);
// 成功复原
Second second = (Second) objectInputStream.readObject();
【MybatisPlus|Mybatis-Plus实现存储以及读取Java对象】自此分享结束,希望能对你们有帮助,谢谢
推荐阅读
- JAVAEE进阶|Lesson2(Spring更简单的读取和存储对象(使用注解))
- 四|Spring使用——读取properties配置文件
- spring|Spring 读取和存储对象
- 面试|【Spring----对象的读取和存储】
- JavaEE|Spring 创建和使用
- Spring|【Spring】Spring 更简单的读取和存储对象
- Spring|Spring~Spring的创建和使用(如何将对象储存到Spring、如何将对象从Spring中读取出来)
- springmvc|SpringMVC注解版 --PK-- xml版入门案例
- 大数据课设&毕设|大数据接私活200元,做个简易的HDFS浏览器(一)