`

处理大数据对象

    博客分类:
  • Jdbc
阅读更多
1. 处理大数据对象

大数据对象处理主要有CLOB(character large object)和BLOB(binary large object)两种类型的字段;在CLOB中可以存储大字符数据对象,比如长篇小说;在BLOB中可以存放二进制大数据对象,比如图片,电影,音乐;


1.1) 处理CLOB数据

alter table t_book add context longtext;

Book.java

package com.andrew.jdbc.model;

import java.io.File;

public class Book {
    private int id;
    private String bookName;
    private float price;
    private String author;
    private int bookTypeId;
    private File context;
    private File pic;
    public Book(String bookName, float price, String author, int bookTypeId) {
        super();
        this.bookName = bookName;
        this.price = price;
        this.author = author;
        this.bookTypeId = bookTypeId;
    }
    public Book(int id, String bookName, float price, String author, int bookTypeId) {
        super();
        this.id = id;
        this.bookName = bookName;
        this.price = price;
        this.author = author;
        this.bookTypeId = bookTypeId;
    }
    public Book(String bookName, float price, String author, int bookTypeId, File context, File pic) {
        super();
        this.bookName = bookName;
        this.price = price;
        this.author = author;
        this.bookTypeId = bookTypeId;
        this.context = context;
        this.pic = pic;
    }
    public Book(String bookName, float price, String author, int bookTypeId, File context) {
        super();
        this.bookName = bookName;
        this.price = price;
        this.author = author;
        this.bookTypeId = bookTypeId;
        this.context = context;
    }
    public int getId() {
        return id;
    }
    public void setId(int id) {
        this.id = id;
    }
    public String getBookName() {
        return bookName;
    }
    public void setBookName(String bookName) {
        this.bookName = bookName;
    }
    public float getPrice() {
        return price;
    }
    public void setPrice(float price) {
        this.price = price;
    }
    public String getAuthor() {
        return author;
    }
    public void setAuthor(String author) {
        this.author = author;
    }
    public int getBookTypeId() {
        return bookTypeId;
    }
    public void setBookTypeId(int bookTypeId) {
        this.bookTypeId = bookTypeId;
    }
    public File getContext() {
        return context;
    }
    public void setContext(File context) {
        this.context = context;
    }
    public File getPic() {
        return pic;
    }
    public void setPic(File pic) {
        this.pic = pic;
    }
    @Override
    public String toString() {
        return "["+this.id+","+this.bookName+","+this.price+","+this.author+","+this.bookTypeId+"]";
    }
}

FileTest.java

package com.andrew.jdbc.chap06;

import java.io.File;
import java.io.FileInputStream;
import java.io.InputStream;
import java.sql.Clob;
import java.sql.Connection;
import java.sql.PreparedStatement;
import java.sql.ResultSet;

import com.andrew.jdbc.model.Book;
import com.andrew.jdbc.util.DbUtil;

public class FileTest {
    private static DbUtil dbUtil = new DbUtil();
    private static int addBook(Book book) throws Exception {
        Connection connection = dbUtil.getConnection();
        String sql = "insert into t_book values(null,?,?,?,?,?)";
        PreparedStatement preparedStatement = connection.prepareStatement(sql);
        preparedStatement.setString(1, book.getBookName());
        preparedStatement.setFloat(2, book.getPrice());
        preparedStatement.setString(3, book.getAuthor());
        preparedStatement.setInt(4, book.getBookTypeId());
        File context = book.getContext();
        InputStream inputStream = new FileInputStream(context);
        preparedStatement.setAsciiStream(5, inputStream, context.length());
        int result = preparedStatement.executeUpdate();
        dbUtil.close(preparedStatement, connection);
        return result;
    }
    public static void getBook(int id) throws Exception {
        Connection connection = dbUtil.getConnection();
        String sql = "select * from t_book where id=?";
        PreparedStatement preparedStatement = connection.prepareStatement(sql);
        preparedStatement.setInt(1, id);
        ResultSet resultSet = preparedStatement.executeQuery();
        if (resultSet.next()) {
            String bookName = resultSet.getString("bookName");
            float price = resultSet.getFloat("price");
            String author = resultSet.getString("author");
            int bookTypeId = resultSet.getInt("bookTypeId");
            Clob c = resultSet.getClob("context");
            String context = c.getSubString(1, (int) c.length());
            System.out.println("图书名称:" + bookName);
            System.out.println("图书价格:" + price);
            System.out.println("图书作者:" + author);
            System.out.println("图书类型ID:" + bookTypeId);
            System.out.println("图书内容:" + context);
        }
        dbUtil.close(preparedStatement, connection);
    }
    public static void main(String[] args) throws Exception {
        File context = new File("e:/helloWorld.txt");
        Book book = new Book("helloWorld", 100, "andrew", 1, context);
        int result = addBook(book);
        if (result == 1) {
            System.out.println("添加成功!");
        } else {
            System.out.println("添加失败!");
        }
        getBook(5);
    }
}

添加成功!
图书名称:helloWorld
图书价格:100.0
图书作者:andrew
图书类型ID:1
图书内容:package com.andrew.jdbc.chap06.sec01;

public class Demo1 {

    public static void main(String[] args) {
        System.out.println("HelloWorld!");
    }
}


1.2) 处理BLOG数据

alter table t_book add pic blob;

PicTest.java

package com.andrew.jdbc.chap06;

import java.io.File;
import java.io.FileInputStream;
import java.io.FileOutputStream;
import java.io.InputStream;
import java.sql.Blob;
import java.sql.Clob;
import java.sql.Connection;
import java.sql.PreparedStatement;
import java.sql.ResultSet;

import com.andrew.jdbc.model.Book;
import com.andrew.jdbc.util.DbUtil;

public class PicTest {
    private static DbUtil dbUtil = new DbUtil();
    private static int addBook(Book book) throws Exception {
        Connection connection = dbUtil.getConnection();
        String sql = "insert into t_book values(null,?,?,?,?,?,?)";
        PreparedStatement preparedStatement = connection.prepareStatement(sql);
        preparedStatement.setString(1, book.getBookName());
        preparedStatement.setFloat(2, book.getPrice());
        preparedStatement.setString(3, book.getAuthor());
        preparedStatement.setInt(4, book.getBookTypeId());
        File context = book.getContext();
        InputStream inputStream = new FileInputStream(context);
        preparedStatement.setAsciiStream(5, inputStream, context.length());
        File pic = book.getPic(); // 获取图片文件
        InputStream inputStream2 = new FileInputStream(pic);
        preparedStatement.setBinaryStream(6, inputStream2, pic.length());
        int result = preparedStatement.executeUpdate();
        dbUtil.close(preparedStatement, connection);
        return result;
    }

    public static void getBook(int id) throws Exception {
        Connection connection = dbUtil.getConnection();
        String sql = "select * from t_book where id=?";
        PreparedStatement pstmt = connection.prepareStatement(sql);
        pstmt.setInt(1, id);
        ResultSet resultSet = pstmt.executeQuery();
        if (resultSet.next()) {
            String bookName = resultSet.getString("bookName");
            float price = resultSet.getFloat("price");
            String author = resultSet.getString("author");
            int bookTypeId = resultSet.getInt("bookTypeId");
            Clob c = resultSet.getClob("context");
            String context = c.getSubString(1, (int) c.length());
            Blob b = resultSet.getBlob("pic");
            FileOutputStream out = new FileOutputStream(new File("E:/pic1jdbc.jpg"));
            out.write(b.getBytes(1, (int) b.length()));
            out.close();
            System.out.println("图书名称:" + bookName);
            System.out.println("图书价格:" + price);
            System.out.println("图书作者:" + author);
            System.out.println("图书类型ID:" + bookTypeId);
            System.out.println("图书内容:" + context);
        }
        dbUtil.close(pstmt, connection);
    }

    public static void main(String[] args) throws Exception {
        File context = new File("E:/helloWorld.txt");
        File pic = new File("E:/pic1.jpg");
        Book book = new Book("helloWorld", 100, "andrew", 1, context, pic);
        int result = addBook(book);
        if (result == 1) {
            System.out.println("添加成功!");
        } else {
            System.out.println("添加失败!");
        }
        getBook(6);
    }
}

运行结果:
添加成功!
图书名称:helloWorld
图书价格:100.0
图书作者:andrew
图书类型ID:1
图书内容:package com.andrew.jdbc.chap06.sec01;

public class Demo1 {

    public static void main(String[] args) {
        System.out.println("HelloWorld!");
    }
}
分享到:
评论

相关推荐

    java-deal-the-CLOB-data0.zip_大数据 编程_数据处理

    【第17章:Java数据库编程】_处理大数据对象(1)—处理CLOB数据笔记

    Java数据库编程

    Java数据库编程 数据库编程, JDBC2.0操作 preparedstatement接口 处理大数据对象,处理clob数据 在elipse中找到驱动mysql的方法

    Java开发详解.zip

    031709_【第17章:Java数据库编程】_处理大数据对象(2)—处理BLOB数据笔记.pdf 031710_【第17章:Java数据库编程】_CallableStatement接口笔记.pdf 031711_【第17章:Java数据库编程】_JDBC 2.0操作笔记.pdf ...

    大数据处理:大数据概述.pdf

    大数据处理 大数据概述 1 参考资料 2 提纲 大数据的定义与特征 大数据的产生和应用 大数据与云计算 大数据与物联网 大数据处理平台的架构 大数据处理流程 大数据处理面临的挑战 大数据关键技术 大数据处理的关键问题...

    云计算与大数据

    本质上,云计算不大数据的关系是静不劢的关系;云计算强调的是计算,这是劢的概念;而数据则是 计算的对象,是静的概念。...大数据需要处理大数据的能力(数据获取、清洁、转换、统 计等能力),其实就是强大的计算能力

    大数据的社会价值与战略选择.pdf

    大数据这一新概念不仅指数据规模庞大,也包括处理和应用数据,是数据对象、技术与 应用三者的统一。大数据既可以是如政府部门或企业掌握的数据库这种有限数据集合,也可 以是如微博、微信、社交网络上虚拟的无限数据...

    电力大数据资料.docx

    为智能电网与新能源发展提供决策依据 "大数据"这个词是最近的新热点,《纽约时报》甚至宣称"大数据时代降临了",随着这个词的频频曝光,它的商业价值也逐渐凸显,"大数据"已然成为众多世界500强企业追捧的对象,意昂...

    [详细完整版]大数据在民航.pdf

    数据从简单的处理对象开始转变为一种基础 性资源, 如何更好地管理和利用大数据已经成为普遍关注的话题。 大数据的规模效应给数据 存储、管理以及数据分析带来了极大的挑战,数据管理方式上的变革正在酝酿和发生。...

    大数据日知录——架构与算法

    《大数据日知录:架构与算法》的读者对象包括对NoSQL 系统及大数据处理感兴趣的所有技术人员,以及有志于投身到大数据处理方向从事架构师、算法工程师、数据科学家等相关职业的在校本科生及研究生。

    大数据日知录

    , 《大数据日知录:架构与算法》的读者对象包括对NoSQL 系统及大数据处理感兴趣的所有技术人员,以及有志于投身到大数据处理方向从事架构师、算法工程师、数据科学家等相关职业的在校本科生及研究生。

    大数据试题及答案.docx

    (1.0分) * [单选题] * A、 识别监管对象真实身份 B、 查找监管对象经营地点 C、 掌控监管对象经营行为 D、 掌握市场主体的社保缴纳情况(正确答案) 大数据试题及答案全文共29页,当前为第1页。第4题, 政务行业大数据...

    什么是blob,mysql blob大小配置介绍

    但也有专家强调,这种处理大数据对象的方法是把双刃剑,它有可能引发一些问题,如存储的二进制文件过大,会使数据库的性能下降。在数据库中存放体积较大的多媒体对象就是应用程序处理BLOB的典型例子。 mysql BLOB...

    大数据日知录(1/2)

    《大数据日知录:架构与算法》的读者对象包括对NoSQL 系统及大数据处理感兴趣的所有技术人员,以及有志于投身到大数据处理方向从事架构师、算法工程师、数据科学家等相关职业的在校本科生及研究生。

    大数据与云计算(论文).doc

    大数据利用对数据处理的实时性、有效性提出了更高要求,需 要根据大数据特点对传统的常规数据处理技术进行技术变革,形成适用于大数据收集、 存储、管理、处理、分析、共享和可视化的技术。如何更好地管理和利用...

    大数据财务分析实训总结.docx

    [摘要]随着大数据技术向财会行业的渗透,熟悉大数据财务分析的学生成为企业追逐的人才和对象,在财会专业开设大数据分析和业务处理课程成为必然。然而财会学生由于计算机知识和数据分析体系的匮乏,这限制了学生在...

    大数据-日知录-架构-算法(PDF高清完整版)

    《大数据日知录:架构与算法》的读者对象包括对NoSQL 系统及大数据处理感兴趣的所有技术人员,以及有志于投身到大数据处理方向从事架构师、算法工程师、数据科学家等相关职业的在校本科生及研究生。

    Java在处理大数据的时候一些小技巧

    众所周知,java在处理数据量比较大的时候,加载到内存必然会导致内存溢出,而在一些数据处理中我们不得不去处理海量数据,在做数据处理中,我们常见的手段是分解,压缩,并行,临时文件等方法;  例如,我们要将...

    大数据的国家战略.doc

    第四,监管政府和私营部门处理大数据的政策框架及法规应该有何区别?例如 ,执法部门、政府服务、商业、学术研究,等等。 第五,跨行政区、跨国家使用大数据会带来哪些法律问题?如当前的国际法律 、法规或规范的...

    时空大数据背景下并行数据处理分析挖掘的进展及趋势.pdf

    随着互联网、物联网和云计算的高速发展,...时空大数据除具备大数据典型的“4V”特性外,还具备对象/事件丰富的语义特征和时空维度动态关联特性。对时空大数据进行处理、分析和挖掘得到蕴含的复杂特征是其核心价值所在

    大数据python常用的模块.docx

    在本文中,我们将介绍一些常用的Python模块,这些模块可以帮助您处理大数据。 1. NumPy NumPy是Python中最常用的科学计算库之一。它提供了一个强大的多维数组对象,可以用于处理大量数据。NumPy还提供了许多数学函数...

Global site tag (gtag.js) - Google Analytics