blob的插入操作方法优化.docx

  1. 1、本文档共3页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
blob的插入操作方法优化

/zhyiwww/archive/2010/03/03/314427.htmlblob的插入操作方法优化 oracle环境的jdbc操作[方法1]先插入empty_blob(),在检索出刚插入的数据,更新blob插入代码? //获得数据库连接 ? ????Connection?con?=?ConnectionFactory.getConnection();? ????con.setAutoCommit(false);? ????Statement?st?=?con.createStatement();? ????//插入一个空对象empty_blob()? ????st.executeUpdate(insert?into?TESTBLOB?(ID,?NAME,?BLOBATTR)?values?(1,?thename,?empty_blob()));? ????//锁定数据行进行更新,注意“for?update”语句 ? ????ResultSet?rs?=?st.executeQuery(select?BLOBATTR?from?TESTBLOB?where?ID=1?for?update);? ????if?(rs.next())? ????{? ????????//得到java.sql.Blob对象后强制转换为oracle.sql.BLOB? ????????oracle.sql.BLOB?blob?=?(oracle.sql.BLOB)?rs.getBlob(BLOBATTR);? ????????OutputStream?outStream?=?blob.getBinaryOutputStream();? ????????//data是传入的byte数组,定义:byte[]?data? ????????outStream.write(data,?0,?data.length);? ????}? ????outStream.flush();? ????outStream.close();? ????mit();? ????con.close(); 注:以上代码来自网上。[方法2]和1相同,但是,我们不用两次操作了,因为我们可以直接用byte[]来替代blob,如: PreparedStatement pstmt = null; StringBuffer sb = new StringBuffer(800); sb.append(INSERT INTO ARTICAL); sb.append((); sb.append(ARTICAL_ID); sb.append(,); sb.append(CATEGORY_ID); sb.append(,); sb.append(ARTICAL_TITLE); sb.append(,); sb.append(ARTICAL_TAGS); sb.append(,); sb.append(ARTICAL_INTO_DATE); sb.append(,); sb.append(ARTICAL_FILE_TYPE); sb.append(,); sb.append(ARTICAL_CONTENT); sb.append()); sb.append( ); sb.append(values); sb.append((); sb.append(?); sb.append(,); sb.append(?); sb.append(,); sb.append(?); sb.append(,); sb.append(?); sb.append(,); sb.append(?); sb.append(,); sb.append(?); sb.append(,);//??? ??? sb.append(empty_blob()); sb.append(?); sb.append()); try { pstmt = createPreparedStatement(sb.toString()); pstmt.setLong(1, artical.getArticalId()); pstmt.setLong(2, artical.getCategoryId()); pstmt.setString(3, artical.getTitle()); pstmt.setString(4, artical.getTags()); pstmt.setDate(5, new Date(System.currentTimeMillis())); pstmt.setString(6, artical.getFileType()); // 此处直接用数组 pstmt.setBytes(

文档评论(0)

xy88118 + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档