java對象存儲到mysql數據庫


環境:mysql8  mybatis 

背景:最近在做一個功能時需要對程序生成的對象保存到數據庫中。

注意事項:需要存儲的對象需要實現序列化接口

例:

import java.io.Serializable;

public class Test implements Serializable {
     //一些屬性
	
	  .......
}

  

代碼:

       實體類:

       

public class Entity {
	private String id;
	
	.....
	//用來存儲序列化后的對象
	private byte[] blob;
	
	
	//get和set方法
	......

}

        寫數據庫:將字節數組寫進數據庫,博主在mysql數據庫創建相關字段時使用的是Blob類型。

public void writeMysql(Object object) {
        byte[] bytes = new byte[0];
        try (ByteArrayOutputStream byteArrayOutputStream = new ByteArrayOutputStream()) {
            ObjectOutputStream outputStream = new ObjectOutputStream(byteArrayOutputStream);
            outputStream.writeObject(object);
            bytes = byteArrayOutputStream.toByteArray();
        } catch (Exception e) {
            e.printStackTrace();
        }
        //下面寫數據庫
        。。。。。。
    }

        讀數據庫:從數據庫中讀取blob類型數據,然后使用ObjectInputStream將對象反序列化

 

public void readMysql(Object object) {
		// 從數據庫中查詢出結果
		Object mysqlobject = 從數據查詢出來的結果;
                byte[] bytes = (byte[])從mysqlobject中取出存儲的序列化對象
		ObjectInputStream inputStream = null;
		inputStream = new ObjectInputStream(new ByteArrayInputStream(bytes));
		Object object3 = inputStream.readObject();
		//object3就是存儲之前的對象,接下來可以對object3強制轉換為存儲之前的類型,進行其他操作
		。。。。。。。
	}

 

  

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM