blob存储文件示例程序

    技术2022-05-11  51

    建表文件

    create   table  A_F2DB(  TID      VARCHAR2 ( 23 not   null ,  A_FILEC CLOB,  A_FILEB BLOB)

    WriteBlob.java

    package  com.fsm.db; import  java.sql. * ; import  java.util.ArrayList; import  java.io. * ; import  oracle.sql. * ; public   class  WriteBlob  -----------icepoint------------ /**  * @param strTID  * @param tablename  * @param filenames  * @param blobcolumnname  * @param KeyColumn  * @return  */ -----------icepoint------------ public boolean writeblobtodb(String strTID, String tablename,   String filenames, String blobcolumnname, String KeyColumn) {  boolean isok = false;  try {   DriverManager.registerDriver(new oracle.jdbc.driver.OracleDriver());   Connection conn = DriverManager.getConnection(     "jdbc:oracle:thin:@localhost:1521:orcl""gj""gj");   conn.setAutoCommit(false);   ReadPath readPath = new ReadPath();   ArrayList list = readPath.okpath();   File f = new File(filenames);   FileInputStream fin = new FileInputStream(f);   BLOB blob = null;   PreparedStatement pstmt = conn.prepareStatement("insert into "     + tablename + " (" + KeyColumn + "," + blobcolumnname     + ") values(?,empty_blob())");   pstmt.setString(1, strTID);   pstmt.executeUpdate();   pstmt.close();   pstmt = conn.prepareStatement("select " + blobcolumnname + " from "     + tablename + " where " + KeyColumn + "=? for update");   pstmt.setString(1, strTID);   ResultSet rset = pstmt.executeQuery();   if (rset.next())    blob = (BLOB) rset.getBlob(1);   pstmt = conn.prepareStatement("update " + tablename + " set "     + blobcolumnname + "=? where " + KeyColumn + "='" + strTID     + "'");   OutputStream out = blob.getBinaryOutputStream();   int count = -1, total = 0;   byte[] data = new byte[(int) fin.available()];   fin.read(data);   out.write(data);   fin.close();   out.close();   pstmt.setBlob(1, blob);   pstmt.executeUpdate();   pstmt.close();   System.out.println("插入成功!!!");   isok = true;   conn.commit();   conn.close();  } catch (SQLException e) {   System.err.println(e.getMessage());   e.printStackTrace();  } catch (IOException e) {   System.err.println(e.getMessage());  }  return isok; } public static void main(String[] args) {  WriteBlob wb=new WriteBlob();  String strTID = "2007";  String tablename = "A_F2DB";  String filenames = "E:/chunye.jpg";  String blobcolumnname = "A_FILEB";  String KeyColumn = "TID";    if(wb.writeblobtodb(strTID,tablename,filenames,blobcolumnname,KeyColumn)){   System.out.println("OK");  }else{   System.out.println("FAILD");  } }}

    最新回复(0)