hibernate blob 对象序列化保存

简介: hibernate blob 对象序列化保存     本文 是 在数据库中存储一个 estatic search 对象 ESQueryCondition  该对象 。   代码走起,   bean package com.

hibernate blob 对象序列化保存

 

 

本文 是 在数据库中存储一个 estatic search 对象 ESQueryCondition  该对象 。

 

代码走起,

 

bean

package com.cmcc.aoi.selfhelp.entity;

import java.io.Serializable;
import java.sql.Blob;
import java.util.Date;

import javax.persistence.Column;
import javax.persistence.Entity;
import javax.persistence.GeneratedValue;
import javax.persistence.GenerationType;
import javax.persistence.Id;
import javax.persistence.Lob;
import javax.persistence.Table;

import org.slave4j.orm.hibernate.BaseEntity;

/**
 * @author baoyou  E-mail:curiousby@163.com
 * @version 创建时间:2015年11月2日 下午2:27:10 
 * des:
 */
@Entity
@Table(name = "estask")
public class EsTask extends BaseEntity implements Serializable {
	@Id
	@Column(name = "es_id")
	private String esId;
	
	@Lob()
	@Column(name = "es_qcserializable")
	private Blob esQcserializable;
	 
	@Column(name = "es_qcjsonstring")
	private String esQcjsonstring;
	
	@Column(name = "es_send_status")
	private int esSendStatus;
	
	@Column(name = "request_id")
	private String requestId;
	
	@Column(name = "insert_time")
	private Date insertTime;

	@Column(name = "last_update_time")
	private Date lastUpdateTime;
	
	
	
	public String getEsId() {
		return esId;
	} 
	public void setEsId(String esId) {
		this.esId = esId;
	} 
	 
	public Blob getEsQcserializable() {
		return esQcserializable;
	}
	public void setEsQcserializable(Blob esQcserializable) {
		this.esQcserializable = esQcserializable;
	}
	public String getEsQcjsonstring() {
		return esQcjsonstring;
	} 
	public void setEsQcjsonstring(String esQcjsonstring) {
		this.esQcjsonstring = esQcjsonstring;
	} 
	public int getEsSendStatus() {
		return esSendStatus;
	} 
	public void setEsSendStatus(int esSendStatus) {
		this.esSendStatus = esSendStatus;
	} 
	public String getRequestId() {
		return requestId;
	} 
	public void setRequestId(String requestId) {
		this.requestId = requestId;
	}
	public Date getInsertTime() {
		return insertTime;
	}
	public void setInsertTime(Date insertTime) {
		this.insertTime = insertTime;
	}
	public Date getLastUpdateTime() {
		return lastUpdateTime;
	}
	public void setLastUpdateTime(Date lastUpdateTime) {
		this.lastUpdateTime = lastUpdateTime;
	} 
}

 

EsTask et = new EsTask();
et.setEsId(deliverWebRequest.getRequestId()+"");
et.setEsQcjsonstring(wstf.getWkjsTag());
et.setEsQcserializable(HibernateBlobUtil.ObjectToBlob(getESQueryCondition(wstf.getWkjsTag() ,req)));
et.setEsSendStatus(-1);
et.setLastUpdateTime(new Date());
et.setInsertTime(new Date());
esTaskService.save(et);

 取

ESQueryCondition query =  (ESQueryCondition) HibernateBlobUtil.BlobToObject( et.getEsQcserializable());

 

工具类

package com.cmcc.aoi.util;

import java.io.ByteArrayOutputStream;
import java.io.IOException;
import java.io.ObjectInputStream;
import java.io.ObjectOutputStream;

import org.hibernate.Hibernate;

/**
 * @author baoyou E-mail:curiousby@163.com
 * @version 创建时间:2015年11月3日 下午6:47:56 des:
 */
public class HibernateBlobUtil {

	public static java.sql.Blob ObjectToBlob(Object obj)  {
		try {
			ByteArrayOutputStream out = new ByteArrayOutputStream();
			ObjectOutputStream outputStream = new ObjectOutputStream(out);
			outputStream.writeObject(obj);
			byte[] bytes = out.toByteArray();
			outputStream.close();
			return Hibernate.createBlob(bytes);
		} catch (Exception e) {
			return null;
		}

	}

	public static Object BlobToObject(java.sql.Blob desblob)   {
		try {
			Object obj = null;
			ObjectInputStream in = new ObjectInputStream(
					desblob.getBinaryStream());
			obj = in.readObject();
			in.close();
			return obj;
		} catch (Exception e) { 
			e.printStackTrace();
		}
		return null;
	}
	
	
}

 

测试结果 ,一切ok .....

 

  

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

捐助开发者

在兴趣的驱动下,写一个免费的东西,有欣喜,也还有汗水,希望你喜欢我的作品,同时也能支持一下。 当然,有钱捧个钱场(右上角的爱心标志,支持支付宝和PayPal捐助),没钱捧个人场,谢谢各位。



 
 
 谢谢您的赞助,我会做的更好!

 

 

目录
相关文章
|
3月前
|
缓存 安全 PHP
PHP中的魔术方法与对象序列化
本文将深入探讨PHP中的魔术方法,特别是与对象序列化和反序列化相关的__sleep()和__wakeup()方法。通过实例解析,帮助读者理解如何在实际应用中有效利用这些魔术方法,提高开发效率和代码质量。
|
2月前
|
存储 安全 Java
Java编程中的对象序列化与反序列化
【10月更文挑战第22天】在Java的世界里,对象序列化和反序列化是数据持久化和网络传输的关键技术。本文将带你了解如何在Java中实现对象的序列化与反序列化,并探讨其背后的原理。通过实际代码示例,我们将一步步展示如何将复杂数据结构转换为字节流,以及如何将这些字节流还原为Java对象。文章还将讨论在使用序列化时应注意的安全性问题,以确保你的应用程序既高效又安全。
|
3月前
|
JSON 前端开发 数据格式
前端的全栈之路Meteor篇(五):自定义对象序列化的EJSON介绍 - 跨设备的对象传输
EJSON是Meteor框架中扩展了标准JSON的库,支持更多数据类型如`Date`、`Binary`等。它提供了序列化和反序列化功能,使客户端和服务器之间的复杂数据传输更加便捷高效。EJSON还支持自定义对象的定义和传输,通过`EJSON.addType`注册自定义类型,确保数据在两端无缝传递。
|
3月前
|
存储 Java
Java编程中的对象序列化与反序列化
【10月更文挑战第9天】在Java的世界里,对象序列化是连接数据持久化与网络通信的桥梁。本文将深入探讨Java对象序列化的机制、实践方法及反序列化过程,通过代码示例揭示其背后的原理。从基础概念到高级应用,我们将一步步揭开序列化技术的神秘面纱,让读者能够掌握这一强大工具,以应对数据存储和传输的挑战。
|
3月前
|
存储 安全 Java
Java编程中的对象序列化与反序列化
【10月更文挑战第3天】在Java编程的世界里,对象序列化与反序列化是实现数据持久化和网络传输的关键技术。本文将深入探讨Java序列化的原理、应用场景以及如何通过代码示例实现对象的序列化与反序列化过程。从基础概念到实践操作,我们将一步步揭示这一技术的魅力所在。
|
3月前
|
JSON 缓存 NoSQL
Redis 在线查看序列化对象技术详解
Redis 在线查看序列化对象技术详解
59 2
|
2月前
|
存储 缓存 NoSQL
一篇搞懂!Java对象序列化与反序列化的底层逻辑
本文介绍了Java中的序列化与反序列化,包括基本概念、应用场景、实现方式及注意事项。序列化是将对象转换为字节流,便于存储和传输;反序列化则是将字节流还原为对象。文中详细讲解了实现序列化的步骤,以及常见的反序列化失败原因和最佳实践。通过实例和代码示例,帮助读者更好地理解和应用这一重要技术。
83 0
|
4月前
|
存储 Java 开发者
Java编程中的对象序列化与反序列化
【9月更文挑战第20天】在本文中,我们将探索Java编程中的一个核心概念——对象序列化与反序列化。通过简单易懂的语言和直观的代码示例,你将学会如何将对象状态保存为字节流,以及如何从字节流恢复对象状态。这不仅有助于理解Java中的I/O机制,还能提升你的数据持久化能力。准备好让你的Java技能更上一层楼了吗?让我们开始吧!
|
4月前
|
存储 Java
Java编程中的对象序列化与反序列化
【9月更文挑战第12天】在Java的世界里,对象序列化与反序列化是数据持久化和网络传输的关键技术。本文将带你了解如何通过实现Serializable接口来标记一个类的对象可以被序列化,并探索ObjectOutputStream和ObjectInputStream类的使用,以实现对象的写入和读取。我们还将讨论序列化过程中可能遇到的问题及其解决方案,确保你能够高效、安全地处理对象序列化。
|
5月前
|
存储 Java
Java编程中的对象序列化与反序列化
【8月更文挑战第28天】在Java世界中,对象序列化与反序列化是数据持久化和网络传输的关键技术。本文将深入浅出地探讨这一过程,带你领略其背后的原理及应用,让你的程序在数据的海洋中自由航行。