`
冷静
  • 浏览: 146936 次
  • 性别: Icon_minigender_1
  • 来自: 佛山
社区版块
存档分类
最新评论

DB序列化和反序列化

    博客分类:
  • Java
阅读更多

/*
     * 将对象转化成java.sql.Blob 
     * 要求 对象是序列化的
     
*/
    
public  java.sql.Blob ObjectToBlob(Object obj)  throws  IOException{
        
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) {
            
//  TODO: handle exception
            System.out.println( " ObjectToBlob " );
            
return   null ;
        }        
    }
    
    
    
/*
     * 将java.sql.Blob 转化成 对象 相应对象
     * 要求 对象是序列化的
     
*/     
    
public  Object BlobToObject(java.sql.Blob desblob,Object obj)  throws  IOException{
        
try  {
            ObjectInputStream in 
=   new  ObjectInputStream(desblob.getBinaryStream());
            obj 
=   in.readObject();
            in.close();    
            
return  obj;
        } 
catch  (Exception e) {
            
//  TODO: handle exception
            System.out.println( " BlobToObject " );
            e.printStackTrace();
            
return   null ;
        }        
    }    

分享到:
评论

相关推荐

    TIA博途-序列化指令Serialize的具体使用方法示例.docx

    为了更好地掌握这个功能,建议动手实践,尝试创建自己的UDT类型,编写序列化和反序列化的程序,并验证其效果。这将有助于深入理解TIA博途中的序列化和反序列化机制,提高你在自动化项目中的数据处理能力。

    yii2 反序列化写shell方式利用1

    ### Yii2 反序列化写Shell方式利用 #### 背景介绍 在软件安全领域,反序列化漏洞是一种常见的安全问题,它允许攻击者通过操纵特定的数据结构来执行恶意代码或控制应用的行为。Yii2是一款流行的PHP框架,用于快速...

    VS、VC++实现对象序列化保存到sqlite表blob类型字段中,包含blob字段的读取和保存,

    在IT领域,对象序列化是一项重要的技术,它允许将复杂的数据结构转化为字节流,以便于存储或传输。...通过编写适当的序列化和反序列化函数,以及正确地使用数据库接口,可以有效地保存和恢复对象状态。

    通过mybatis generator反向工程生成pojo及mapper类 带序列化插件

    通过以上步骤,你已经成功地使用MyBatis Generator进行了反向工程,生成了带有序列化功能的POJO类和Mapper接口。这不仅减少了手动编写代码的工作量,也确保了代码与数据库表的一致性。记得在实际项目中根据需求调整...

    利用PHAR协议进行PHP反序列化攻击1

    这种攻击方式的关键在于理解PHP的反序列化机制,以及如何构造能够触发特定行为的类和对象。在防御方面,开发者应避免在代码中使用易受反序列化攻击的函数,同时对输入数据进行严格的验证和过滤,以防止恶意数据注入...

    ThinkPHP v3.2.X(SQL注入&文件读取)反序列化POP链1

    为了防止此类攻击,开发者应升级ThinkPHP至不受影响的版本,同时对序列化和反序列化数据进行严格的验证和过滤。此外,限制不必要的文件读取权限,禁用调试模式,以及定期更新和加固数据库配置也能有效降低风险。 ...

    thinkphp5.0反序列化链小记.pdf

    - 上述payload中涉及到了多个类和方法的嵌套使用,最终目的是为了在反序列化过程中执行`@riny($CBFG[1])`这行代码,其中`$CBFG`是一个预定义的变量,通常由框架内部设置,用于存储反序列化后的对象。 #### 四、总结...

    Yii框架反序列化RCE利用链分析1

    本文主要探讨了Yii2框架中的反序列化 Remote Code Execution (RCE)漏洞利用链的分析和构造过程。 首先,让我们理解反序列化漏洞的基本概念。在PHP中,`unserialize()`函数用于将序列化的字符串还原为PHP的对象或...

    MySQL JDBC 客户端反序列化漏洞分析 - 安全客,安全资讯平台1

    MySQL JDBC 客户端反序列化漏洞是一种安全性问题,它涉及到使用Java Database Connectivity (JDBC) API连接到MySQL数据库时,由于特定版本的MySQL Connector/J驱动程序处理BLOB字段的方式,可能允许攻击者通过精心...

    CVE-2020-15148 Yii框架反序列化RCE利用链 exp1

    2. **避免反序列化未知数据**:只对信任的数据源进行反序列化操作,且之前要进行充分的验证和过滤。 3. **使用安全的序列化库**:考虑使用如`JsonSerializable`接口代替`serialize()`和`unserialize()`。 4. **代码...

    ThinkPHP 6.x反序列化POP链(一)1

    本文将详细探讨ThinkPHP 6.x版本中的一个特定安全问题——反序列化POP链的利用,帮助开发者理解和防范此类攻击。 首先,我们了解什么是反序列化POP链。反序列化是将序列化的对象恢复成原生的PHP对象的过程,而POP链...

    flask-serialize:使用SQLAlchemy的Flask应用程序的模型的读写JSON序列化

    使用SQLAlchemy对Flask应用程序进行PUT和POST写入的DB Model JSON序列化 安装 pip install flask-serialize 简单而快速地开始两个步骤。 .1。 导入FlaskSerializeMixin mixin并将其添加到模型中: from flask_...

    小白看得懂的MySQL JDBC 反序列化漏洞分析 - 先知社区1

    当使用JDBC驱动处理数据库查询结果时,如果返回的对象是可序列化的,那么在某些情况下,驱动可能会尝试反序列化这些对象。在MySQL JDBC 8.0.12中,`ResultSetImpl.getObject()`方法在特定条件下可能会触发这个行为。...

    django model object序列化实例

    # 对QuerySet对象进行Django的序列化和simplejson的反序列化 return simplejson.loads(serialize('json', obj)) elif isinstance(obj, models.Model): # 将单个Model对象包装成一个列表,然后序列化并移除首尾方...

    python redis存入字典序列化存储教程

    然而,由于Redis默认处理的是字符串,当我们要存储复杂的数据结构,如字典时,就需要进行序列化和反序列化操作。本教程将深入讲解如何使用Python的Redis库来存储和检索字典。 首先,Redis的数据类型包括字符串...

    python使用json序列化datetime类型实例解析.docx

    此外,我们还介绍了一些其他的序列化技术,如`pickle`和`shelve`,它们虽然功能强大,但在跨语言的数据交换场景中并不常用。希望本篇文章能帮助你在处理日期时间相关的序列化问题时更加得心应手。

    redis-py 的 Python 接口.zip

    >>> 分贝客户端本地主机6379/>序列化器客户端可以配置为自动序列化和反序列化值。 附带了三种序列化器redishPlain普通序列化器不会序列化值,但仍然支持使用encoding参数进行压缩。请注意,这意味着您只能在键中存储...

    node-h3r-serializer:用于 h3r 序列化器与 db 交互的节点服务器

    在现代Web开发中,数据的序列化和反序列化是至关重要的环节,它涉及到数据在内存与持久化存储之间的转换。H3R(可能是某个项目或库的缩写)序列化器就是这样一个工具,专门用于处理H3R格式的数据,并且通过Node.js...

    PyPI 官网下载 | marshmallow-pynamo-db-0.8.4.tar.gz

    在本篇中,我们将探讨一个名为`marshmallow-pynamo-db-0.8.4.tar.gz`的压缩包,这是一个基于Python的开源库,用于处理PynamoDB数据模型的序列化和反序列化。让我们深入了解这个库的功能、用法以及如何在实际项目中...

    C++ mysql查询 C++17编写 可以自动序列化到定义的结构体,支持json类型

    在处理查询结果时,可以将每一行数据转化为JSON对象,然后反序列化到对应的结构体实例: ```cpp #include struct YourStruct { int id; std::string name; // 其他成员... }; nlohmann::json rowJson = res->...

Global site tag (gtag.js) - Google Analytics