类型:转载 责任编辑:asp.net 日期:2007/05/23
热门软件下载:










页面导航:
正文内容:在存储图片、可执行文件等二进制信息时(当然直接放在文件系统上也行),blob 数据就派上用场了。本文无太多深度可言,能为大家在开发过程中提供参考足亦!
hibernate 与 sql server blob
blob 数据在 sql server 数据库中主要由 image 类型体现,最大容量为 2gb。其存储方式不同于普通的数据类型,对于普通类型的数据系统直接在用户定义的字段上存储数据值,而对于 image 类型数据,系统开辟新的存储页面来存放这些数据,表中 image 类型数据字段存放的仅是一个 16 字节的指针,该指针指向存放该条记录的 image 数据的页面。如果你对 hibernate 还不熟息,请看这里。
新建名为 “blob_test” 的表,字段分别是 int 类型的 “id” 和 image 类型的 “myblob”。从文件系统读取 “sample.jpg” 并转换成字节数组再放进 blobtest 对象实例。写入程序如下:
import java.io.*; import net.sf.hibernate.*; import bo.*; public class tester { public void dotest() { //begin blobtest //begin hibernate session
import net.sf.hibernate.cfg.*;
inputstream in = null;
blobtest blobtest = null;
configuration cfg = null;
sessionfactory sessions = null;
session session = null;
transaction tx = null;
try {
//begin inputstream
in = new fileinputstream("d:/sample.jpg");
byte[] b = new byte[in.available()];
in.read(b);
in.close();
blobtest = new blobtest();
blobtest.setmyblob(b);
cfg = new configuration().configure();
sessions = cfg.buildsessionfactory();
session = sessions.opensession();
tx = session.begintransaction();
session.save(blobtest);
tx.commit();
} catch (exception e) {
e.printstacktrace();
} finally {
try {
session.close();
} catch (exception e1) {
e1.printstacktrace();
}
}
}
}
©2007 popbb.net All Rights Reserved