java读取图像文件存入oracle中blob字段源代码

数据库:Oracle 10G XE

数据源驱动:jdbc12.jar

文件名:WriteBlob

数据库中建立一个为clobtest的表,内有两个字段,name (varchar2(20)),content(blob)。

1package dbdriver;23/** *//**4 * 2008-09-285 * @author duduli6 * email: lxyzj2000@gmail.com7 */8import java.sql.*;9import java.io.*;10import oracle.sql.*;1112public class WriteBlob {1314  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      }4142      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 ut = 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}

路遥知马力,日久见人心。

java读取图像文件存入oracle中blob字段源代码

相关文章:

你感兴趣的文章:

标签云: