程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> JAVA編程 >> 關於JAVA >> java讀取圖像文件存入oracle中blob字段源代碼

java讀取圖像文件存入oracle中blob字段源代碼

編輯:關於JAVA

數據庫:oracle 10G XE

數據源驅動:jdbc12.jar

文件名:WriteBlob

數據庫中建立一個為clobtest的表,內有兩個字段,name (varchar2(20)),content(blob)。

1package dbdriver;
2
3/** *//**
4 * 2008-09-28
5 * @author duduli
6 * email: [email protected]
7 */
8import java.sql.*;
9import java.io.*;
10import oracle.sql.*;
11
12public class WriteBlob {
13
14  public static void main(String[] args) {
15    try {
16      String fName2 = "";
17      String fileName = "E:\\jianxin.bmp";
18//E盤下游個jianxin.bmp的圖像文件
19      File f = new File(fileName);
20      String fName = f.getName();
21      int i = fName.lastIndexOf('.');
22      if (i > 0 && i < fName.length()-1){
23          fName2 = fName.substring(0,i);
24        }
25      System.out.println(fName2);
26//獲得文件名,出去後綴的文件名。
27      DriverManager.registerDriver(new oracle.jdbc.driver.OracleDriver());
28      Connection conn = DriverManager.getConnection( "jdbc:oracle:thin:@localhost:1521:XE", "system", "duduli  ");
29      conn.setAutoCommit(false);
30      BLOB blob = null;
31      PreparedStatement pstmt = conn.prepareStatement("insert into blobtest(name,content) values(?,empty_blob())");
32      pstmt.setString(1, fName2);
33      pstmt.executeUpdate();
34      pstmt.close();
35      pstmt = conn.prepareStatement("select content from blobtest where name= ? for update");
36      pstmt.setString(1, fName2);
37      ResultSet rset = pstmt.executeQuery();
38      if (rset.next()) {
39        blob = (BLOB) rset.getBlob(1);
40      }
41
42      FileInputStream fin = new FileInputStream(f);
43      System.out.println("file size = " + fin.available());
44      pstmt = conn.prepareStatement("update blobtest set content=? where name=?");
45      OutputStream out = blob.getBinaryOutputStream();
46      byte[] data = new byte[(int) fin.available()];
47      fin.read(data);
48      out.write(data);
49      fin.close();
50      out.close();
51      pstmt.setBlob(1, blob);
52      pstmt.setString(2, fName2);
53      pstmt.executeUpdate();
54      pstmt.close();
55      conn.commit();
56      conn.close();
57        } catch (SQLException e) {
58          System.err.println(e.getMessage());
59          e.printStackTrace();
60        } catch (IOException e) {
61          System.err.println(e.getMessage());
62        }
63  }
64}

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved