问题描述
jsp实现添加视频文件到oracle数据库的blob字段,求实现方法
解决方案
解决方案二:
视频流文件转换成byte数组
解决方案三:
你先获取视频流,然后自己封装一把持久化到blob
解决方案四:
参考下吧:importjava.io.BufferedInputStream;importjava.io.FileInputStream;importjava.io.PrintStream;importjava.sql.Connection;importjava.sql.DriverManager;importjava.sql.ResultSet;importjava.sql.SQLException;importjava.sql.Statement;publicclassTest{privateConnectionconn;/***得到一个数据库的连接**@return返加Connection对象*/publicConnectiongetConnection(){try{Class.forName("oracle.jdbc.driver.OracleDriver");conn=DriverManager.getConnection("jdbc:oracle:thin:@localhost:1521:lyx","scott","tiger");}catch(ClassNotFoundExceptione){//TODOAuto-generatedcatchblocke.printStackTrace();}catch(SQLExceptione){//TODOAuto-generatedcatchblocke.printStackTrace();}returnconn;}/***向表中插入图片**@parampath图片所在的路径*@return整形判断成功或失败*/publicintinsertImage(Stringpath)throwsException{inti=0;Statementst=null;ResultSetrs=null;conn=this.getConnection();conn.setAutoCommit(false);//设置数据库为不自动提交,必须的一步st=conn.createStatement();//先插入一个空对象,这里我调用了Empty_BLOB()函数i=st.executeUpdate("insertintoimage(id,image)values(seq1.nextval,Empty_BLOB())");//以行的方式锁定rs=st.executeQuery("selectimagefromimagewhereid=(selectmax(id)fromimage)forupdate");if(rs.next()){//得到流oracle.sql.BLOBblob=(oracle.sql.BLOB)rs.getBlob(1);//从得到的低级流构造一个高级流PrintStreamps=newPrintStream(blob.getBinaryOutputStream());BufferedInputStreambis=newBufferedInputStream(newFileInputStream(path));byte[]buff=newbyte[1024];intn=0;//从输入到输出while((n=bis.read(buff))!=-1){ps.write(buff,0,n);}//清空流的缓存ps.flush();//关闭流,注意一定要关ps.close();bis.close();}rs.close();st.close();conn.close();returni;}publicstaticvoidmain(String[]args)throwsException{Testtest=newTest();test.insertImage("e:\3.jpg");System.out.println("OK");}}
解决方案五:
我也不懂,一起学习
解决方案六:
神经病视频文件存放到blob字段中上传1个1G的视频你传到啥时候去了?一般的做法是保存到ftp或者服务器本地