当前位置:  技术问答>java相关

java.sql.Blob为什么不可以setBinaryStream的,只可以get,如果这样的话,在以前的jdbc版本中是怎样用BLOB数据类型来对表进行操作的,怎

    来源: 互联网  发布时间:2015-09-05

    本文导语:  java.sql.Blob为什么不可以setBinaryStream的,只可以get,如果这样的话,在以前的jdbc版本中是怎样用BLOB数据类型来对表进行操作的,怎样应用的? | java.sql.Blob只是个接口而已,而且看来就是方便...

java.sql.Blob为什么不可以setBinaryStream的,只可以get,如果这样的话,在以前的jdbc版本中是怎样用BLOB数据类型来对表进行操作的,怎样应用的?

|
java.sql.Blob只是个接口而已,而且看来就是方便取数据用的,所以没有提供setBinaryStream的方法。你要存Blob字段,jdbc提供了另外的方法啊,如
PreparedStatement的setBinaryStream(int parameterIndex, InputStream x, int length)、setBytes(int parameterIndex, byte[] x)和setBlob(int i, Blob x) 。不过setBlob(int i, Blob x) 中实现Blob接口的类标准jdk中并没有,你就只有通过从jdbc Driver厂商开发提供了,例如oracle.sql.BLOB。
呵呵,因为那些厂商开发的冬冬,我都找不到详细的API文档,所以,都不知道怎么具体去构造,只好用前两种。

|
set use :

pstmt = conn.PreparedStatement("insert table(blobfield,....) values(?,...)");

pstmt.setObject(1,"blob String");
pstmt.execute();


get use:
resultSet.getString("BlobField");

that is all ,enjoy.

|
要写入内容到Blob,请看下面的代码片段:
...
ResultSet lobDetails = stmt.executeQuery(
         "SELECT content FROM webblob WHERE name = '"+name+"' FOR UPDATE");
   if(lobDetails.next()) {
    Blob mapBlob = lobDetails.getBlob(1);
    OutputStream blobOutputStream = ((oracle.sql.BLOB)mapBlob).getBinaryOutputStream();
    File mapFile = new File(filename);
    InputStream sampleFileStream=new FileInputStream(mapFile);
    byte[] buffer = new byte[10* 1024];
    int nread = 0;
    while ((nread= sampleFileStream.read(buffer)) != -1)
     blobOutputStream.write(buffer,0,nread);
    sampleFileStream.close();
    blobOutputStream.close();
    System.out.println("Done insert Blob Data!");

|
BLOB是不能设置的,一般在用到对表中BLOB字段操作时,是用BYTE[]进行存储的。最初设计BLOB时是考虑为了能够存储大型数据,但是如果设置BLOB的话,可以对BYTE[]进行修改,然后存库,在取出,这样就达到set...的目的了。!

|
关注,我也想知道,帮你upup

|
学习

|
学习中!

|
楼上的真是搞笑,用blob字段来存放字符串,杀鸡用牛刀啊。

|
获益不浅,很好很好。

    
 
 

您可能感兴趣的文章:

  • C语言中有指针,因此C语言可以创建链表,那么Java语言没有指针,那Java是否可以创建链表呢?
  • 我和我的朋友机器联网了,我的我的java程序(用jdbc驱动)可以连到他的sqlserver.但不可以连到我自己的。但我的java程序(用jdbc-odbc桥)连
  • JAVA编译的CLASS文件可以反编译为JAVA文件吗?
  • java学到什么水平,可以去应聘JAVA程序员?希望大家踊跃讨论!!!!!
  • linux下用java开发是不是JB就可以,JAVA在LINUX下开发有优势吧!
  • 用什么工具可以把JAVA的.CLASS文件反编译成.JAVA文件??
  • java里有什么函数可以检查 java 代码并执行它?
  • java可以调用windows api吗,用jbuild 可以生成.exe文件吗,散分,高手出招
  • java初手,请问到那里下载java在ie下面的插件,让ie可以运行applet
  • 初学java可以用哪种工具好?visual age for java 怎么样?
  • java 可以使用 可是javac不可以使用。老兄帮帮忙
  • 请问那里有兼职的程序员可以做?(语言限于java)有网页制作的也可以呀!
  • java中的数据库结果集可以被赋值吗,可以通过结果集的方法来更新数据库字段吗?
  • 请教各位DX,我是java初学者,如何在win98下配置jdk,在哪可以下载java类库?
  • 哪有java版的设计模式方面的书可以下载呀?材料也可以呀
  • 求教JAVA高手:哪里可以下载(Visual JAVA 3)的教科书?...
  • 我要拜师! 我想找一个人带我进JAVA大门,畅游JAVA世界,可以吗,希望和他经常交流!
  • java或者是jsp中处理字符串、时间等的函数在那里可以查到资料?或者他们都是采用对象的方式?那么资料在那里可以查到?
  • 帮我看一下我错在哪里了,我的JAVA是可以用的而我d的tomcat不可以用.为什么?
  • 请问那里可以下到类似于jBuilder帮助里的java reference?(想要JAVA的帮助)
  • java命名空间java.sql接口sqlxml的类成员方法: setbinarystream定义及介绍
  • java命名空间javax.sql.rowset.serial类serialblob的类成员方法: setbinarystream定义及介绍
  • java命名空间java.sql接口preparedstatement的类成员方法: setbinarystream定义及介绍
  • java命名空间javax.sql.rowset类baserowset的类成员方法: setbinarystream定义及介绍
  • java命名空间javax.sql接口rowset的类成员方法: setbinarystream定义及介绍
  • java命名空间java.sql接口callablestatement的类成员方法: setbinarystream定义及介绍
  • java命名空间java.sql接口blob的类成员方法: setbinarystream定义及介绍
  •  
    本站(WWW.)旨在分享和传播互联网科技相关的资讯和技术,将尽最大努力为读者提供更好的信息聚合和浏览方式。
    本站(WWW.)站内文章除注明原创外,均为转载、整理或搜集自网络。欢迎任何形式的转载,转载请注明出处。












  • 相关文章推荐
  • 我要学习 java,但不知道java 最高版本是多少啊?我应学哪个版本好呢?还有那里有电子版的中文书籍下栽啊?谢谢
  • 请问各不同的浏览器版本对应支持Java相应的哪个版本编译出来的程序?
  • Java 版本控制系统 SourceJammer
  • QQ农场外挂JAVA版本 qqhack
  • 最好的java环境是不是jbuilder?最新版本是……?
  • visual age for java 中的 ejb 版本问题
  • 请教一下,如果想在linux下开发java,选哪个版本的linux好一点
  • 谁实验过哪个版本的java虚拟机在xp平台上运行成功了?
  • java怎么看版本号?
  • 怎么在linux下用java取得它的版本号:version
  • visual age for java 中的 ejb 版本问题 iis7站长之家
  • THINK IN JAVA版本问题!
  • Java做Web开发,想学习下Linux,不知用什么版本的好,望各位大神们指点
  • 又买了一个版本的.net,又是装不上,烦也烦死了,还是java爽呀。散点分玩玩。
  • VisualAge for Java 和 Visual Cafe 这两个工具怎么样?各自的最高版本是多少?
  • 用java读中文linux中的文件是正确的,用java读英文linux版本中的文件是乱码,如何使英文linux读出的文件数据也是中文的?
  • 网上哪儿有java的企业级开发包1。3版本的,我需要在win 98上跑,谢谢!
  • 在国内寻找visibroker(for java) 4.x版本下载站点
  • IE5.0支持java applet的版本是多少??
  • 请问现在FORTE FOR JAVA的最新版本是多少了?3或4
  • java命名空间java.sql类types的类成员方法: java_object定义及介绍
  • 我想学JAVA ,是买THINK IN JAVA 还是JAVA2核心技术:卷1 好???
  • java命名空间java.awt.datatransfer类dataflavor的类成员方法: imageflavor定义及介绍
  • 请问Java高手,Java的优势在那里??,Java主要适合于开发哪类应用程序
  • java命名空间java.lang.management类managementfactory的类成员方法: getcompilationmxbean定义及介绍
  • 如何将java.util.Date转化为java.sql.Date?数据库中Date类型对应于java的哪个Date呢
  • java命名空间java.lang.management接口runtimemxbean的类成员方法: getlibrarypath定义及介绍
  • 谁有电子版的《Java编程思想第二版(Thinking in java second)》和《Java2编程详解(special edition java2)》?得到给分
  • java命名空间java.lang.management接口runtimemxbean的类成员方法: getstarttime定义及介绍
  • 本人想学java,请问java程序员的待遇如何,和java主要有几个比较强的方向
  • java命名空间java.awt.datatransfer类dataflavor的类成员方法: stringflavor定义及介绍


  • 站内导航:


    特别声明:169IT网站部分信息来自互联网,如果侵犯您的权利,请及时告知,本站将立即删除!

    ©2012-2021,,E-mail:www_#163.com(请将#改为@)

    浙ICP备11055608号-3