java往数据库存储大文件

java往数据库存储大文件,第1张

你好。请问什么数据库。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 len

while (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()

你把数据库的一个表中的一个字段设置为“备注(TEXT)”类型,就可以存放大量的内容了。

这与

java本身没有什么关系。

主要是数据库的结构设计问题。

用java读取和写入的方法其实

没有什么特别

的,

rs.getString("...")

BufferedReader input

try {

String s = new String()

input = new BufferedReader(new FileReader("f:\\123.txt"))

while ((s = input.readLine()) != null) { // 判断是否读到了最后一行

String info[] = s.split(" ")

System.out.println( info[0] + " " + info[1] + " " + info[2] )

}

input.close()

} catch (FileNotFoundException e) {

// TODO Auto-generated catch block

e.printStackTrace()

} catch (IOException e) {

// TODO Auto-generated catch block

e.printStackTrace()

}

把info[0] + " " + info[1] + " " + info[2] 这三个值放在insert语句里就行了 经过测试


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/sjk/9970467.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-03
下一篇 2023-05-03

发表评论

登录后才能评论

评论列表(0条)

保存