• 大二进制数据的存取


     1 package cn.itcast.jdbc.lob;
     2 
     3 import java.io.File;
     4 import java.io.FileInputStream;
     5 import java.io.FileOutputStream;
     6 import java.io.FileReader;
     7 import java.io.FileWriter;
     8 import java.io.InputStream;
     9 import java.io.OutputStream;
    10 import java.io.Reader;
    11 import java.io.Writer;
    12 import java.sql.Connection;
    13 import java.sql.PreparedStatement;
    14 import java.sql.ResultSet;
    15 
    16 import org.junit.Test;
    17 
    18 import cn.itcast.util.JdbcUtil;
    19 
    20 //大二进制数据的存取
    21 /*
    22 use day15;
    23 create table t2(
    24     id int primary key,
    25     content longblob
    26 );
    27  */
    28 public class BlobDemo {
    29     @Test
    30     public void testAdd(){
    31         Connection conn = null;
    32         PreparedStatement stmt = null;
    33         try{
    34             conn = JdbcUtil.getConnection();
    35             stmt = conn.prepareStatement("insert into t2 (id,content) values (?,?)");
    36             stmt.setInt(1, 1);
    37             
    38             InputStream in = new FileInputStream("c:/1.jpg");
    39             stmt.setBinaryStream(2, in, in.available());
    40             
    41             int i = stmt.executeUpdate();
    42             if(i>0)
    43                 System.out.println("插入成功");
    44             
    45         }catch(Exception e){
    46             e.printStackTrace();
    47         }finally{
    48             JdbcUtil.release(null, stmt, conn);
    49         }
    50     }
    51     @Test
    52     public void testRead(){
    53         Connection conn = null;
    54         PreparedStatement stmt = null;
    55         ResultSet rs = null;
    56         try{
    57             conn = JdbcUtil.getConnection();
    58             stmt = conn.prepareStatement("select * from t2 where id=?");
    59             stmt.setInt(1, 1);
    60             //大数据要使用流的形式
    61             //保存到E盘上
    62             rs = stmt.executeQuery();
    63             if(rs.next()){
    64                 InputStream in = rs.getBinaryStream("content");
    65                 OutputStream out = new FileOutputStream("e:/1.jpg");
    66                 byte b[] = new byte[1024];
    67                 int len = -1;
    68                 while((len=in.read(b))!=-1){
    69                     out.write(b, 0, len);
    70                 }
    71                 out.close();
    72                 in.close();
    73             }
    74             
    75         }catch(Exception e){
    76             e.printStackTrace();
    77         }finally{
    78             JdbcUtil.release(null, stmt, conn);
    79         }
    80     }
    81 }
  • 相关阅读:
    iOS开发_广告接入
    iOS开发_项目中一次性屏蔽打印多余内容的方法
    iOS开发_屏蔽第三方库FFmpeg的日志输出
    iOS开发_应用项目的架构选型
    iOS开发_多线程_基础知识点
    Xcode13 新建项目后找不到Products目录怎么办?
    Linux教程
    iOS Invalid App Store Icon The App Store Icon can't be transparent nor contain an alpha channel
    FastReport打印DataTable
    windows服务
  • 原文地址:https://www.cnblogs.com/friends-wf/p/3747915.html
Copyright © 2020-2023  润新知