当前位置:七道奇文章资讯编程技术Java编程
日期:2011-03-22 16:12:00  来源:本站整理

Spring让LOB数据操作变得简单易行[Java编程]

赞助商链接



  本文“Spring让LOB数据操作变得简单易行[Java编程]”是由七道奇为您精心收集,来源于网络转载,文章版权归文章作者所有,本站不对其观点以及内容做任何评价,请读者自行判断,以下是其具体内容:

概述

LOB 代表大对象数据,包含 BLOB 和 CLOB 两种范例,前者用于存储大块的二进制数据,如图片数据,视频数据等,此后者用于存储长文本数据,如论坛的帖子内容,产品的具体描写等.值得注意的是:在差别的数据库中,大对象对应的字段范例是不尽相同的,如 DB2 对应 BLOB/CLOB,MySql 对应 BLOB/LONGTEXT,SqlServer 对应 IMAGE/TEXT.需求指出的是,有些数据库的大对象范例可以象简单范例一样拜候,如 MySql 的 LONGTEXT 的操作方法和 VARCHAR 范例一样.在普通情形下, LOB 范例数据的拜候方法差别于别的简单范例的数据,我们常常会以流的方法操作 LOB 范例的数据.此外,LOB 范例数据的拜候不是线程安全的,需求为其单独分配呼应的数据库资源,并在操作完成后释放资源.最后,Oracle 9i 非常有本性地采取非 JDBC 尺度的 API 操作 LOB 数据.全部这些情形给编写操作 LOB 范例数据的程序带来挑衅,Spring 在 org.springframework.jdbc.support.lob 包中为我们供应了呼应的帮忙类,以便我们轻松应对这头拦路虎.

Spring 大大降低了我们处理 LOB 数据的难度.首先,Spring 供应了 NativeJdbcExtractor 接口,您可以在差别环境里挑选呼应的实现类从数据源中获得本地 JDBC 对象;其次,Spring 通过 LobCreator 接口撤消了差别数据厂商操作 LOB 数据的差别,并供应了成立 LobCreator 的 LobHandler 接口,您只要按照底层数据库范例挑选符合的 LobHandler 举行配置便可.

本文将具体地报告通过 Spring JDBC 插入和拜候 LOB 数据的具体历程.不管是以块的方法还是以流的方法,您都可以通过 LobCreator 和 LobHandler 便利地拜候 LOB 数据.关于 ORM 框架来说,JPA 拥有自身处理 LOB 数据的配置范例,Spring 为 Hibernate 和 iBatis 辨别供应了 LOB 数据范例的配置类,您仅需求利用这些类举行简单的配置便可以像普通范例一样操作 LOB 范例数据.

本地 JDBC 对象

当您在 Web 利用服务器或 Spring 中配置数据源时,从数据源中返回的数据衔接对象是本地 JDBC 对象(如 DB2Connection、OracleConnection)的代理类,这是因为数据源需求改变数据衔接一些原有的行为以便对其举行掌握:如调用 Connection#close() 办法时,将数据衔接返回到衔接池中而非将其真的关闭.

在拜候 LOB 数据时,按照数据库厂商的差别,大概需求利用被代理前的本地 JDBC 对象(如 DB2Connection 或 DB2ResultSet)特有的 API.为了从数据源中获得本地 JDBC 对象, Spring 定义了 org.springframework.jdbc.support.nativejdbc.NativeJdbcExtractor 接口并供应了呼应的实现类.NativeJdbcExtractor 定义了从数据源中抽取本地 JDBC 对象的若干办法:

办法 阐明
Connection getNativeConnection(Connection con) 获得本地 Connection 对象
Connection getNativeConnectionFromStatement(Statement stmt) 获得本地 Statement 对象
PreparedStatement getNativePreparedStatement(PreparedStatement ps) 获得本地 PreparedStatement 对象
ResultSet getNativeResultSet(ResultSet rs) 获得本地 ResultSet 对象
CallableStatement getNativeCallableStatement(CallableStatement cs) 获得本地 CallableStatement 对象

有些简单的数据源仅对 Connection 对象举行代理,这时可以直接利用 SimpleNativeJdbcExtractor 实现类.但有些数据源(如 Jakarta Commons DBCP)会对全部的 JDBC 对象举行代理,这时,就需求按照具体的情形挑选合适的抽取器实现类了.下表列出了差别数据源本地 JDBC 对象抽取器的实现类:

数据源范例 阐明
WebSphere 4 及以上版本的数据源 org.springframework.jdbc.support.nativejdbc.WebSphereNativeJdbcExtractor
WebLogic 6.1+ 及以上版本的数据源 org.springframework.jdbc.support.nativejdbc.WebLogicNativeJdbcExtractor
JBoss 3.2.4 及以上版本的数据源 org.springframework.jdbc.support.nativejdbc.JBossNativeJdbcExtractor
C3P0 数据源 org.springframework.jdbc.support.nativejdbc.C3P0NativeJdbcExtractor
DBCP 数据源 org.springframework.jdbc.support.nativejdbc.CommonsDbcpNativeJdbcExtractor
ObjectWeb 的 XAPool 数据源 org.springframework.jdbc.support.nativejdbc.XAPoolNativeJdbcExtractor


  以上是“Spring让LOB数据操作变得简单易行[Java编程]”的内容,如果你对以上该文章内容感兴趣,你可以看看七道奇为您推荐以下文章:

  • 在Ubuntu管理iPhone/iPod SpringBoard图标
  • Visual C++ sprintf()函数用法
  • 发扬EJB、Spring思惟将组件化举行到底
  • spring在MVC层办理JPA的缓迟加载问题
  • 用spring简单实现发送邮件
  • 用Spring framework实现按时器功效
  • 关于Struts和Spring两种MVC框架的比较
  • Spring自动装配的学习
  • Spring事件配置的五种办法
  • Spring编程入门十大问题解答
  • Hibernate+Spring+Struts扩大Struts
  • J2EE新手入门之"Spring"名词注释
  • 本文地址: 与您的QQ/BBS好友分享!
    • 好的评价 如果您觉得此文章好,就请您
        0%(0)
    • 差的评价 如果您觉得此文章差,就请您
        0%(0)

    文章评论评论内容只代表网友观点,与本站立场无关!

       评论摘要(共 0 条,得分 0 分,平均 0 分) 查看完整评论
    Copyright © 2020-2022 www.xiamiku.com. All Rights Reserved .