jdbc操作BLOB类型数据

来源:互联网 发布:sql 清空数据库 编辑:程序博客网 时间:2024/05/19 17:24

jdbc操作BLOB类型数据

     下面对jdbc操作blob类型数据做个说明,网上很多的处理方式都是先插入一个空的blob数据,然后再锁定该记录执行更新操作,这样做太麻烦了,所以推荐用下面的方法来处理:

PreparedStatement pstmt = conn.prepareStatement(sql,ResultSet.TYPE_SCROLL_INSENSITIVE,ResultSet.CONCUR_READ_ONLY);

InputStream ins = (InputStream)obj ;//输入流
     byte[] buf = new byte[ins.available()] ;
     ins.read(buf) ;
     pstmt.setBytes(i+1, buf) ;

然后ResultSet rs = pstmt.executeUpdate();

就这样就可以了,很简单的,其它细节方面就不说了,开始的时候用的pstmt.setBinaryStream(0, ins),但老是抛异常,最后没办法了,还是用数组吧,取出blob类型一样的,得到的也是一个流,然后操作流就好了。还有一个问题,就是在上传这些文件或图片的时候有的时候在上传的大于某个值后就不能上传了,而这个值不是你控制的,那么这个问题多半是jdbc驱动程序(ojdbc14.jar)的问题,网上说的是在oracle 9i中的驱动程序对blob类型的字段上传大小是有限定的,但10g后的就取消这个限定了,所以不管你是9i的还是10g的,都用10g以后的驱动包就不会出现文件过大而无法上传的问题了,附件中的这个驱动包就没有上传文件大小的限定。

原创粉丝点击