处理大数据对象

一、大数据对象

大数据对象处理主要有 CLOB(characterlarge object)和 BLOB(binary large object)两种类型的字段;

在 CLOB 中可以存储大字符数据对象,比如长篇小说;

在 BLOB 中可以存放二进制大数据对象,比如图片,电影,音乐;

1、插入CLOB、BLOG对象

/**
     * 添加图书
     * 
     * @param book
     * @return
     * @throws Exception
     */
    private static int addBook2(Book book) throws Exception {
        Connection con = dbUtil.getCon();// 获取连接
        String sql = "insert into t_book values(null,?,?,?,?,?,?)";
        PreparedStatement pstmt = con.prepareStatement(sql);
        pstmt.setString(1, book.getBookName());// 给第一个坑设置值
        pstmt.setString(2, book.getAuthor());// 给第二个坑设置值
        pstmt.setFloat(3, book.getPrice());// 给第三个坑设置值
        pstmt.setInt(4, book.getBookTypeId());// 给第四个坑设置值
        File context = book.getContext();// 获取文件
        InputStream inputStream = new FileInputStream(context);
        pstmt.setAsciiStream(5, inputStream, context.length());// 给第五个坑设置值
        
        File pic=book.getPic();//获取图片
        InputStream inputStream2=new FileInputStream(pic);
        pstmt.setBinaryStream(6, inputStream2,pic.length());// 给第六个坑设置值
        int result = pstmt.executeUpdate();
        dbUtil.close(pstmt, con);
        return result;
    }
public static void main(String[] args) throws Exception {
        //文本存放地址
        File context=new File("F:/helloworld.txt");
        //图片存放地址
        File pic=new File("F:/bg02.jpg");
        Book book=new Book("helloworld","阿力",100,1,context,pic);
        
        int result=addBook2(book);
        if (result==1) {
            System.out.println("添加成功!");    
        }else {
            System.out.println("添加失败!");
            }
}

2、输出CLOB、BLOG对象

  /**
     * 获取对应结果集
     * @param id
     * @throws Exception
     */
    public static void getBook(int id)throws Exception{
        Connection con=dbUtil.getCon();
        String sql="select * from t_book where id=?";
        PreparedStatement pstmt=con.prepareStatement(sql);
        pstmt.setInt(1, id);
        ResultSet rSet=pstmt.executeQuery();
        if (rSet.next()) {
            String bookName=rSet.getString("bookName");
            String author=rSet.getString("author");
            float price=rSet.getFloat("price");
            int bookTypeId=rSet.getInt("bookTypeId");
            Clob c=rSet.getClob("context");
            String context=c.getSubString(1, (int) c.length());
            Blob b=rSet.getBlob("pic");
            //输出图片存放地址
            FileOutputStream out=new FileOutputStream(new File("F:/bg021.jpg"));
            out.write(b.getBytes(1,(int) b.length()));
            out.close();
            System.out.println("图书名称:"+bookName+"图书作者:"+author+"图书价格:"
            +price+"图书类别:"+bookTypeId+"图书内容:"+context);
        }
        dbUtil.close(pstmt, con);
    }
    public static void main(String[] args) throws Exception {
            getBook(9);
    }    
原文地址:https://www.cnblogs.com/xiaoyqng/p/8321041.html