Mysql儲存java對象執行個體詳解_java

來源:互聯網
上載者:User

Mysql儲存java對象

MySQL  設定欄位為 blob

儲存對象,先將對象序列化為byte[]  使用 setObject(byte[] bytes)

ByteArrayOutputStream baos = new ByteArrayOutputStream();     ObjectOutputStream out = null;     try {       out = new ObjectOutputStream(baos);       out.writeObject(java執行個體對象);        } catch (IOException e) {       logger.error("msg2Bytes error!", e);     }finally{       try {         out.close();       } catch (IOException e) {         logger.error("msg2Bytes error!", e);       }     }          return baos.toByteArray(); 

擷取對象 使用getBytes(),將擷取的byte[]還原序列化為Java 對象

ByteArrayInputStream bais;     ObjectInputStream in = null;     try{       bais = new ByteArrayInputStream(bytes);       in = new ObjectInputStream(bais);        return (java類)in.readObject();     }finally{       if(in != null){         try {           in.close();         } catch (IOException e) {           logger.error("bytes2Msg error!", e);         }       }     } 

網上的其他方式會有各類問題,請慎用。

包括:

1.設定url參數 autoDeserialize=true
2.setObject(java執行個體對象)        查詢

ObjectInputStream oips = new ObjectInputStream(rs.getBinaryStream(1)); 
ArrayList<String> obb = (java類)oips.readObject();//從流中讀取對象 

感謝閱讀,希望能協助到大家,謝謝大家對本站的支援!

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.