⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 writeblob.java

📁 jdbc 源代码
💻 JAVA
字号:
package com.jdbclab;
import java.sql.*;
import java.io.*;
public class WriteBlob
{
	public static void main(String[] args){
	  /* create table t_sd0709_blob(
	       id number(12) primary key,
		   filename varchar(50) not null,
		   blobData blob); 
	  */
	  String filename = args[0];
	  Blob blob = null;
	  Connection con = null;
	  PreparedStatement ps = null;
	  ResultSet rs = null;
	  String sql = "";
	  try{
	    con = JdbcUtil.getConnection();
		con.setAutoCommit(false);
	    //1.请求oracle为我们制造一个空的blob字段值
	    sql = "insert into t_sd0709_blob "+
		   "values(?,?,empty_blob())";
        ps = con.prepareStatement(sql);
		ps.setInt(1,1);
		ps.setString(2,filename);
		ps.executeUpdate();
		JdbcUtil.release(ps);
		//2.将空的blob字段值读回来
		sql = "select blobData from t_sd0709_blob "+
			"where id=? for update";
		ps = con.prepareStatement(sql);
		ps.setInt(1,1);
		rs = ps.executeQuery();
		if(rs!=null){
		  if(rs.next())
		    blob = rs.getBlob(1);
		}
		//3.将文件中的内容倒入blob对象中
		InputStream in = new FileInputStream(filename);
		OutputStream out = 
			blob.setBinaryStream(0);
		byte[] content = new byte[in.available()];
		in.read(content);
		out.write(content);
		in.close();
		out.close();
        //4.将存有数据的blob对象更新回数据库
		sql = "update t_sd0709_blob "+
			"set blobData=? where id=?";
		JdbcUtil.release(rs,ps,null);
		ps = con.prepareStatement(sql);
		ps.setBlob(1,blob);
		ps.setInt(2,1);
		ps.executeUpdate();
		con.commit();
	  }catch(Exception e){
	    e.printStackTrace();
		if(con!=null){
		  try{
		    con.rollback();
		  }catch(Exception ex){
		    ex.printStackTrace();
		  }
		}
	  }finally{
	    JdbcUtil.release(null,ps,con);
	  }
	}
}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -