Mysql 存储 java 对象实例详解
这里有新鲜出炉的 Java 并发编程示例, 程序狗速度看过来!
Java 程序设计语言
java 是一种可以撰写跨平台应用软件的面向对象的程序设计语言, 是由 Sun Microsystems 公司于 1995 年 5 月推出的 Java 程序设计语言和 Java 平台 (即 JavaEE(j2ee), JavaME(j2me), JavaSE(j2se)) 的总称
这篇文章主要介绍了 Mysql 存储 java 对象实例详解的相关资料, 需要的朋友可以参考下
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();// 从流中读取对象
来源: http://www.phperz.com/article/18/0210/359381.html