
oracle如下 数据库中提供了两种
字段类型 Blob 和 Clob 用于存储大型字符串或二进制数据(如图片)。 Blob 采用单
字节存储,适合保存二进制数据,如图片文件。 Clob 采用多字节存储,适合保存大型文本数据。 首先创建一个空 Blob/Clob 字段,再从这个空 Blob/Clob字段获取游标,例如下面的代码: PreparedStatement ps = conn.prepareStatement( " insert into PICTURE(image,resume) values(?,?) " )// 通过oralce.sql.BLOB/CLOB.empty_lob()构造空Blob/Clob对象 ps.setBlob( 1 ,oracle.sql.BLOB.empty_lob())ps.setClob( 2 ,oracle.sql.CLOB.empty_lob())ps.excuteUpdate()ps.close()// 再次对读出Blob/Clob句柄 ps = conn.prepareStatement( " select image,resume from PICTURE where id=? for update " )ps.setInt( 1 , 100 )ResultSet rs = ps.executeQuery()rs.next()oracle.sql.BLOB imgBlob = (oracle.sql.BLOB)rs.getBlob( 1 )oracle.sql.CLOB resClob = (oracle.sql.CLOB)rs.getClob( 2 )// 将二进制数据写入Blob FileInputStream inStream = new FileInputStream( " c://image.jpg " )OutputStream outStream = imgBlob.getBinaryOutputStream()byte [] buf = new byte [ 10240 ]int lenwhile (len = inStream.read(buf) >0 ) { outStream.write(buf, 0 ,len)} inStream.close()outStream.cloese()// 将字符串写入Clob resClob.putString( 1 , " this is a clob " )// 再将Blob/Clob字段更新到数据库 ps = conn.prepareStatement( " update PICTURE set image=? and resume=? where id=? " )ps.setBlob( 1 ,imgBlob)ps.setClob( 2 ,resClob)ps.setInt( 3 , 100 )ps.executeUpdate()ps.close()少年,数据库有个类型是blob,可以用这个类型存储,直接存储字节,步骤:
1.假设图片字段名Image,那么设置Image为blob字段
2.代码中将bimageview转换为字节以后,用ContentValues中的values.put("Image",byte[])然后或者是插入,或者是更新,用android的sqlite3中的 *** 作就可以了
如果你看上面的后半部分不太懂,可以百度一下:android sqlite3 的增删改查,就会看到里面有具体的步骤了,就是利用ContentValues进行sql语句处理
评论列表(0条)