clob一般用来存放超大广西,如果是2进制文件一般用blob.
假设col2是clob:
写操作:
string sql = "insert into tb_commendtemp (col1,col2) values('111',?)";
string s = "长文本";
stringbufferinputstream sbin = new stringbufferinputstream(s);
preparedstatement ps = query.getprestmt(sql);
ps.setasciistream(1,sbin,s.length());
int i = ps.executeupdate();
ps.close();
sbin.close();
if(i>0) ok;
如果是二进制文件就用fileinputstream写进去
读的时候只要
rs.getasciistream();
rs.getunicodestream();
rs.getbinarystream();
看它们的名字就知道是得到什么类型的的数据流了.
如果存放的是二进制文件,比如图形,执行文件,压缩文件最好还是blob保险.
写和读也要用二进制流,
datainputstrean和datoutputstream.有时用unicode的字符流也能行,但
不保险.如果是文本,用clob和long都行.读和写用
buffreedreader和printwriter更方便.
要想在一个网页上同时显示从程序中推出的文字和图象,这项技术目前在国内
可以值100万.
因为目前浏览器要想同时显示html文档和image文档,你到目前在国内还没有
发现,要用到server push技术.你想想一下电子邮件的文档头,是复合型的,把
数据用base 64编码就可以通过特定的文档类型同时显示文字和图片了.可是浏览器目前还做不到.
blob:二进制,如果exe,zip
clob:单字节码,比如一般的文本文件.
nlob:多字节码,如utf格式的文件.
如果带格式的文件如果word,execl等如果要保持格式不被破坏,最好以blob
方式,它近似于以byte的原始方式存放,缺点当然是操作时效率低(慢).
操作clob,别的可以看我上面的写和读的例子,只要注意把
写pstmt.setbinarystream()改成rs.setasciistream();
读pstmt.getbinarystream()改成rs.getbinarystream();
在从文件读成流的时候用reader而不要用datainuputstream