日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

java 文件上传至oracle blob字段 实现

發布時間:2023/12/9 编程问答 26 豆豆
生活随笔 收集整理的這篇文章主要介紹了 java 文件上传至oracle blob字段 实现 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

2019獨角獸企業重金招聘Python工程師標準>>>

指定文件夾下的所有文件上傳至oracle的blob字段,java實現


package com.huth;import java.io.File; import java.io.FileNotFoundException; import java.io.IOException; import java.io.FileInputStream; import java.io.OutputStream;import java.sql.Connection; import java.sql.DriverManager; import java.sql.PreparedStatement; import java.sql.ResultSet; import java.sql.SQLException; import java.sql.Blob;import java.util.ArrayList;/*** * 采用簡單遞歸方法讀取指定目錄下的所有固定后綴的文件(文件夾下可能嵌套子文件夾)**/ public class ReadFiles {private ArrayList<File> files; //目錄下的所有文件列表private static String prefix = "doc"; //文件后綴public ReadFiles(ArrayList<File> files){this.files = files;}public void readFilesInDir(String dir)throws FileNotFoundException,IOException{try{File folder = new File(dir);//若dir是文件,直接獲取文件名if(!folder.isDirectory()){//System.out.println(folder+"是文件");String fileName = dir +"\\"+folder.getName();//System.out.println("fileName="+fileName);System.out.println("prefix="+fileName.substring(fileName.lastIndexOf(".")+1).trim());if(fileName.substring(fileName.lastIndexOf(".")+1).trim().equalsIgnoreCase(prefix)){files.add(new File(fileName));}}//若dir是文件夾,則獲取文件夾內的文件列表//若其中還有文件夾,則遞歸else if(folder.isDirectory()){//System.out.println(folder+"是文件夾");String[] fileLists = folder.list();//文件夾下的文件名和子文件夾名for(int i=0;i<fileLists.length;i++){//System.out.println("fileLists["+i+"]="+fileLists[i]);File file = new File(dir+"\\"+fileLists[i]);if(!file.isDirectory()){//System.out.println(file+"是文件");String fileName = dir +"\\"+file.getName();//System.out.println("fileName="+fileName);System.out.println("prefix="+fileName.substring(fileName.lastIndexOf(".")+1).trim());if(fileName.substring(fileName.lastIndexOf(".")+1).trim().equalsIgnoreCase(prefix)){files.add(new File(fileName));} }else if(file.isDirectory()){readFilesInDir(dir+"\\"+fileLists[i]);}}}}catch(FileNotFoundException e){e.printStackTrace();}catch(IOException ex){ex.printStackTrace();}}private Connection newConnection(String user, String password){Connection con = null;try{Class.forName("oracle.jdbc.driver.OracleDriver").newInstance();con = DriverManager.getConnection("jdbc:oracle:thin:@172.16.10.249:1521:test",user,password);}catch(SQLException e){e.printStackTrace();return null;}catch(ClassNotFoundException exc){exc.printStackTrace();return null;}catch(IllegalAccessException ex){ex.printStackTrace();return null;}catch(InstantiationException exception){exception.printStackTrace();return null;}return con;}//unit testpublic static void main(String[] args){ArrayList<File> files = new ArrayList<File>();ReadFiles read = new ReadFiles(files);Connection conn = read.newConnection("test", "oracle");ResultSet rs;try{read.readFilesInDir("d:/test");System.out.println("files.size()="+files.size());for(int i=0;i<files.size();i++){String fileName = files.get(i).getName();System.out.println("fileNames["+i+"]="+fileName);FileInputStream fin = new FileInputStream(files.get(i));PreparedStatement stmt = conn.prepareStatement("insert into aa values("+fileName+",empty_blob())");rs = stmt.executeQuery("select text from aa where name = "+fileName+" for update");if(rs.next()){Blob blob = rs.getBlob(1);OutputStream out = ((oracle.sql.BLOB)blob).getBinaryOutputStream();byte[] b = new byte[((oracle.sql.BLOB)blob).getBufferSize()];int len = 0;while((len = fin.read(b))!=-1)out.write(b,0,len);fin.close();out.close();rs.close();conn.commit();}}conn.close();}catch(FileNotFoundException e){e.printStackTrace();}catch(IOException ex){ex.printStackTrace();}catch(SQLException exc){exc.printStackTrace();}}}

轉載于:https://my.oschina.net/rouchongzi/blog/113987

總結

以上是生活随笔為你收集整理的java 文件上传至oracle blob字段 实现的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。