数据库大数据存储类型演示


import java.io.BufferedInputStream;
import java.io.BufferedOutputStream;
import java.io.BufferedReader;
import java.io.File;
import java.io.FileOutputStream;
import java.io.InputStream;
import java.io.InputStreamReader;
import java.io.OutputStream;
import java.sql.Connection;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.sql.Statement;

import org.junit.Test;

import cn.hncu.util.ConnFactory;

public class BigDataDemo {
    @Test   //向数据库写文本数据
    public void testWriteText() throws Exception{
        Connection con = ConnFactory.getConnection();
        String sql = "insert into bigdata(note) values(?)";
        PreparedStatement pst = con.prepareStatement(sql);
        InputStream in = BigDataDemo.class.getClassLoader().getResourceAsStream("JdbcDemo.abc");
        pst.setAsciiStream(1, in);
        pst.executeUpdate();
        con.close();
    }

    @Test   //从数据库读文本数据
    public void testReadText() throws Exception{
        Connection con = ConnFactory.getConnection();
        String sql = "select * from bigdata where id= 1";
        Statement st = con.createStatement();
        ResultSet rs = st.executeQuery(sql);
        while(rs.next()){
            InputStream in = rs.getAsciiStream(2);
            BufferedReader br = new BufferedReader(new InputStreamReader(in));
            String line = "";
            while((line=br.readLine())!=null){
                System.out.println(line);
            }
        }
    }

    @Test   //向数据库写图片
    public void testWriteBlob() throws Exception{
        Connection con = ConnFactory.getConnection();
        String sql = "insert into bigdata(img) values(?)";
        PreparedStatement pst = con.prepareStatement(sql);
        InputStream in = BigDataDemo.class.getClassLoader().getResourceAsStream("0.jpg");
        pst.setBinaryStream(1, in);
        pst.executeUpdate();
        con.close();
    }

    @Test   //从数据库读图片
    public void testReadBlob() throws Exception{
        Connection con = ConnFactory.getConnection();
        Statement st = con.createStatement();
        String sql = "select img from bigdata where id = 5";
        ResultSet rs = st.executeQuery(sql);
        while(rs.next()){
            BufferedInputStream bis = new BufferedInputStream(rs.getBinaryStream(1));
            OutputStream out = new FileOutputStream(new File("D:/a/img.jpg"));
            BufferedOutputStream bos = new BufferedOutputStream(out);
            int len = 0;
            byte buf[] = new byte[512];
            while((len = bis.read(buf))!=-1){
                bos.write(buf, 0, len);
            }
            bis.close();
            bos.close();
            out.close();
        }
        con.close();
    }
}
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值