Oracle保存大对象BLOB
最近在使用Oracle做文件上传,要求将文件数据保存到数据库中。Oracle提供了Blob用来存储二进制大对象数据,可是它和Java.sql里面的Blob不兼容,经常导致Blob字段无法锁定或者操作失败。由于以前没有做过这样的例子,所以花了不少时间才解决。
我使用的是struts2.1.8+spring2.5+hibernate3.2,下面是相关代码:
spring配置文件中配置hibernate的参数:
<property name="hibernateProperties">
<value>
hibernate.dialect=org.hibernate.dialect.Oracle9Dialect
hibernate.hbm2ddl.auto=update
hibernate.show_sql=false
hibernate.format_sql=true
hibernate.jdbc.batch_size=0
</value>
</property>
因为Oracle中对流的操作不支持批量,因此hibernate.jdbc.batch_size=0必须加上
sturts.xml中配置上传文件最大长度:
<constant name="struts.multipart.maxSize" value="52428800"/>
如果上传文件超出该配置范围,请求将不会发送到Acion
fileUpload.jsp页面设置表单属性:
<s:form action="business_fileUpload" namespace="/business"
enctype="multipart/form-data" method="post">
enctype="multipart/form-data"该属性是Struts2对文件上传的支持,设置该属性之后就可以在Action端直接用File对象来接受上传的文件数据,而method="post"就不必多讲了,也是必须的。
FileAction.java中:
public String fileUpload() throws Exception {
this.fileServiceBean.fileUpload(updateFile);
return "fileList";
}
Action中没有任何数据处理,直接将表单数据传进服务层的文件上传方法中
FileServiceBean.java中:
public boolean fileUpload(UpdateFile updateFile) {
try {
Session session = this.objectDaoHibernate.openSession();
Transaction ts = session.beginTransaction();
// 保存一个空的Blob对象
updateFile.setFileData(BLOB.empty_lob());
updateFile.setUpTime(new Date());
session.save(updateFile);
// 强制保存,否则锁定时报:无法找到该对象错
session.flush();
// BLOB更新之前必须锁定对象
session.refresh(updateFile, LockMode.UPGRADE);
// 解决java.sql.Blob无法转型为oracle.sql.BLOB问题
Ser
相关文档:
DBWn进程负责将脏数据块写入磁盘。它是一个非常重要的进程,随着内存的增加,一个DBWn进程可能不够用了。从oracle8i起,我们可以为系统配置多个DBWn进程。初始化参数db_writer_process决定了启动多少个DBWn进程。每个DBWn进程都会分配一个cache lru chain latch。
DBWn作为一个后台进程, ......
1、固定列数的行列转换
如
student subject grade
--------- ---------- --------
student1 语文 80
student1 数学 70
student1 英语 60
student2 语文 90
student2 数学 80
student2 英语 100
……
转换为
语文 数学 英语
student1 80 70 60
student2 90 80 100
……
语句如下:s ......
Oracle中Kill session的研究
作者:eygle |English Version 【转载时请以超链接形式标明文章出处和作者信息及本声明】
链接:http://www.eygle.com/archives/2004/06/kill_session.html
我们知道,在Oracle数据库中,可以通过kill session的方式来终止一个进程,其基本语法结构为:
alter system kill session 'sid,serial# ......
比较专业,专门计算机技术电子书下载的:
www.itpub.net
www.itepub.net
www.netyi.net/in.asp?id=daotong
www.chmpdf.com
相对不太专业的,内容也非常丰富
www.infoxa.com
www.xpbook.com
这些网站几乎可以找到你想要的全部书籍。 ......