利用JDBC读取数据库大对象 如:file

import java.io.FileInputStream;
import java.io.FileOutputStream;
import java.io.InputStream;
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.PreparedStatement;
import java.sql.ResultSet;

public class Test {
 static String Driver="org.gjt.mm.mysql.Driver";
 static String url="jdbc:mysql://localhost:3306/XXX";
 static String user="root";
 static String password="123456";
 public static void main(String[] args) throws Exception{
  Connection conn=null;
  
  try{
   Class.forName(Driver);
   conn=DriverManager.getConnection(url,user,password);
   int op=1;
   if(op==0){
    String sql="inset into tb_file values(?,?)";
    PreparedStatement pt=conn.prepareStatement(sql);
    pt.setString(1,"sourcefile.exe");
    InputStream in=new FileInputStream("F:\\sourceifle.exe");
    pt.setBinaryStream(2,in,in.available());
    pt.executeUpdate();
    pt.close();
   }else{
    String sql="select * from tb_file where filename=?";
    PreparedStatement pt=conn.prepareStatement(sql);
    pt.setString(1,"a.exe");
    ResultSet rs=pt.executeQuery();
    rs.next();
    InputStream in=rs.getBinaryStream("filecontent");
    System.out.println(in.available());
    FileOutputStream out=new FileOutputStream("F:\\destination.exe");
    byte[] b=new byte[1024];
    int len=0;
    while((len=in.read(b))!=-1){
     out.write(b,0,len);
     out.flush();
    }
    out.close();
    in.close();
    rs.close();
    pt.close();
   }
  }catch(Exception e){
   e.printStackTrace(System.out);
  }finally{
   try{
    conn.close();
   }catch(Exception e){
    e.printStackTrace();
   }
  }
 }

}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值