`

处理大数据对象

    博客分类:
  • 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!");
    }
}
分享到:
评论

相关推荐

    oracle mysql sqlser2000对大数据对象的操作

    本文将深入探讨这三个数据库在处理大数据对象时的关键特性、操作方法以及与Java的集成。 首先,Oracle数据库以其强大的性能和企业级功能而闻名。它支持BLOB(Binary Large Object)类型,用于存储大块二进制数据,...

    基于ADO.NET的SQL Server数据库image对象的存取及其效率分析.pdf

    在当前的信息技术领域中,处理大数据对象的存取问题是一个常见的技术挑战。大数据对象的存取技术涉及到将大量的数据,比如文本、图形、声音等,存储到数据库中,并能够实现对这些数据的高效管理。在对大数据对象进行...

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

    本章将聚焦于处理大数据对象,特别是`CLOB`(Character Large Object)数据类型。`CLOB`用于存储大量的文本数据,如长篇文章、XML文档或者任何非结构化的字符数据。在大数据场景下,对这类数据进行高效管理和操作...

    C#处理大容量数据,及多线程简单应用

    在IT行业中,尤其是在开发大型应用程序时,处理大容量数据是..."CountDataSheet"这个文件名可能代表了对数据表进行计数的操作,这正是在处理大数据时可能遇到的一个场景,可以结合上述技术来实现高效的数据统计和分析。

    大数据的对象持久化.zip

    文件"borm-master"可能是一个开源项目,名为"BORM",它可能是“大数据对象关系映射”(Big Data Object-Relational Mapping)的缩写,旨在简化大数据应用中对象与数据库之间的交互。对象关系映射是一种编程技术,...

    c#Treeview处理大数据xml

    本篇文章将深入探讨如何在C#中利用`TreeView`控件处理大数据XML文件,包括XML的加载、`TreeView`的显示以及查询方法。 首先,让我们理解XML的基本概念。XML(eXtensible Markup Language)是一种用于存储和传输结构...

    Java数据库编程

    处理大数据对象是Java数据库编程中的一个重要环节。大数据对象通常指的是BLOB(Binary Large Object)和CLOB(Character Large Object)。BLOB用于存储二进制数据,如图片、音频或视频文件;CLOB则用于存储大文本...

    JDBC详解(连接操作数据库、处理大数据、批处理)

    ### JDBC详解:连接操作数据库、处理大数据、批处理 #### 一、JDBC简介 JDBC,全称为Java DataBase Connectivity(Java数据库连接),是Sun公司(现已被Oracle收购)为了解决不同数据库间的操作差异性而设计的一套...

    clob-blob.rar_blob and clob_clob_java CLOB_java oracle cl_oracle

    总之,这个压缩包提供了一个学习和实践Java操作Oracle数据库CLOB和BLOB字段的实例,有助于开发者理解如何在实际项目中处理大数据对象。通过这种方式,可以高效地存取和管理大量的文本和二进制数据。

    JDBC使用MySQL处理大数据+事务控制管理.txt

    ### JDBC使用MySQL处理大数据及事务控制管理 #### 一、批处理提高性能 在处理大量数据时,直接使用传统的逐条记录方式与数据库进行交互往往会导致性能低下。这是因为每次执行SQL语句时都需要与数据库建立连接、...

    Hibernate对BLOB CLOB操作

    在Java的持久化框架Hibernate中,BLOB和CLOB是用来处理大数据对象(Binary Large Object和Character Large Object)的。这两个类型常用于存储图像、视频、大文本等数据,因为它们可以容纳超过数据库标准列大小限制的...

    前端开源库-streaming-json-stringify

    然而,原生JavaScript的`JSON.stringify()`方法在处理大数据对象时可能会遇到内存限制和性能问题。为了解决这些问题,`streaming-json-stringify`这个前端开源库应运而生,它提供了一种流式处理JSON对象的方法,以...

    基于Spark的转录组大数据并行处理方法.pdf

    传统的转录组数据分析通常依赖于单机上的串行软件,如RNA-seq工具,这些工具在处理大数据时受到计算资源的限制,导致分析效率低下。随着大数据技术的发展,分布式计算框架如Apache Hadoop和其上运行的MapReduce编程...

    struts hibernate 练习

    对于"对大字段的操作",Hibernate提供了Blob和Clob类型来处理大数据对象。Blob用于存储二进制大数据,如图片或文件;Clob用于存储字符型大数据,如长文本。你需要在实体类中定义对应的属性,并在配置文件中指定其...

    轨迹大数据:数据处理关键技术研究综述.pdf

    在大数据时代,移动互联网的飞速发展和移动终端的广泛普及导致了海量的移动对象轨迹数据的产生。这些轨迹数据蕴含着丰富的时空特征信息,通过轨迹数据处理技术,人们可以挖掘出与人类活动规律、行为特征、城市车辆...

    用pandas处理大数据———减少90%内存消耗的小贴士

    在使用Pandas处理大数据时,内存管理是关键因素,因为数据规模增大,内存消耗也会显著增加,可能导致程序崩溃。Pandas虽然在处理中小规模数据时表现出色,但在面对GB级别的数据时,性能会下降,而转向如Spark这样的...

    基于电力大数据的实时流数据处理技术研究.pdf

    IEC61850开发平台作为核心架构,采用面向对象的数据存储方式,支持SCL配置文件,以及MMS、GOOSE和ACSI通信协议,它具备数据处理、事件监控、任务管理和系统维护等功能,同时支持Server端和Client端功能,适用于智能...

    Java大数据课程核心笔记

    此外,Java的并发和多线程知识在处理大数据时尤为重要。大数据通常需要并行处理以提高效率,因此,理解synchronized关键字、Thread类、ExecutorService以及并发集合如ConcurrentHashMap等,是提升大数据处理性能的...

    ORACLE中对大数据量表的处理方法

    ### ORACLE中对大数据量表的处理方法 #### 一、引言 随着ORACLE数据库在各个领域的广泛应用,很多应用场景下的共享数据量逐渐增大。在这些应用中,少数几个大数据量表占据了大量的存储空间。这类表往往具有很强的...

    第五届中国云计算大会青山友纪:运用inter-cloud computing处理大数据的演进

    ### 第五届中国云计算大会青山友纪:运用inter-cloud computing处理大数据的演进 #### 一、Inter-Cloud Computing概述 在第五届中国云计算大会上,来自庆应义塾大学的青山友纪教授分享了关于inter-cloud computing...

Global site tag (gtag.js) - Google Analytics