广告
返回顶部
首页 > 资讯 > 数据库 >什么是 JDBC Blob 数据类型?如何存储和读取其中的数据?
  • 109
分享到

什么是 JDBC Blob 数据类型?如何存储和读取其中的数据?

2023-10-22 10:10:49 109人浏览 安东尼
摘要

BLOB 是二进制大对象,可以容纳可变数量的数据,最大长度为 65535 个字符。它们用于存储大量二进制数据,例如图像或其他类型的数据。文件。定义为 TEXT 的字段也保存大量数据。两者之间的区别在于,存储数据的排序和比较在 BLOB 中区

BLOB 是二进制大对象,可以容纳可变数量的数据,最大长度为 65535 个字符。

它们用于存储大量二进制数据,例如图像或其他类型的数据。文件。定义为 TEXT 的字段也保存大量数据。两者之间的区别在于,存储数据的排序和比较在 BLOB 中区分大小写,而在 TEXT 字段中不区分大小写。您没有使用 BLOB 或 TEXT 指定长度。

将 Blob 存储到数据库

要将 Blob 数据类型存储到数据库,请使用 JDBC 程序按照以下步骤操作

第 1 步:连接到数据库

您可以使用 DriverManagergetConnection() 方法连接到数据库

通过传递 Mysql URL(jdbc:mysql://localhost/sampleDB)(其中 exampleDB 是数据库名称)、用户名和密码作为 getConnection() 方法的参数。

String mysqlUrl = "jdbc:mysql://localhost/sampleDB";
Connection con = DriverManager.getConnection(mysqlUrl, "root", "passWord");

第二步:创建预编译语句

使用Connection接口的prepareStatement()方法创建一个PreparedStatement对象。将插入查询(带有占位符)作为参数传递给此方法。

PreparedStatement pstmt = con.prepareStatement("INSERT INTO MyTableVALUES(?, ?)");

第 3 步:为占位符设置值

使用 PreparedStatement 接口的 setter 方法将值设置为占位符。根据列的数据类型选择方法。例如,如果列是 VARCHAR 类型,则使用 setString() 方法;如果列是 INT 类型,则可以使用 setInt() 方法。

如果列是 Blob 类型,则可以使用以下方法为其设置值setBinaryStream() 或 setBlob() 方法。向这些方法传递一个表示参数索引的整数变量和一个 InputStream 类的对象作为参数。

pstmt.setString(1, "sample image");
//Inserting Blob type
InputStream in = new FileInputStream("E:\images\cat.jpg");
pstmt.setBlob(2, in);

第四步:执行语句

使用PreparedStatement接口的execute()方法执行上述创建的PreparedStatement对象。

从数据库中检索blob

ResultSet接口的getBlob()方法接受一个整数,表示列的索引(或者一个表示列名的字符串值),并检索指定列的值,并以Blob对象的形式返回。

while(rs.next()) {
   rs.getString("Name");
   rs.getString("Type");
   Blob blob = rs.getBlob("LoGo");
}

Blob 接口的 getBytes() 方法检索当前 Blob 对象的内容并以字节数组形式返回。

使用getBlob()方法,您可以将blob的内容获取到字节数组中,并使用write()方法创建图像FileOutputStream 对象。

byte byteArray[] = blob.getBytes(1,(int)blob.length());
FileOutputStream outPutStream = new FileOutputStream("path");
outPutStream.write(byteArray);

示例

以下示例在 MySQL 数据库中创建一个 blob 数据类型的表,并向其中插入图像。将其检索并存储在本地文件系统中。

import java.io.FileInputStream;
import java.io.FileOutputStream;
import java.sql.Blob;
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.sql.Statement;
public class BlobExample {
   public static void main(String args[]) throws Exception {
      //ReGIStering the Driver
      DriverManager.registerDriver(new com.mysql.jdbc.Driver());
      //Getting the connection
      String mysqlUrl = "jdbc:mysql://localhost/sampleDB";
      Connection con = DriverManager.getConnection(mysqlUrl, "root", "password");
      System.out.println("Connection established......");
      //Creating a table
      Statement stmt = con.createStatement();
      stmt.execute("CREATE TABLE SampleTable( Name VARCHAR(255), Image BLOB)");
      System.out.println("Table Created");
      //Inserting values
      String query = "INSERT INTO SampleTable(Name,image) VALUES (?, ?)";
      PreparedStatement pstmt = con.prepareStatement(query);
      pstmt.setString(1, "sample image");
      FileInputStream fin = new FileInputStream("E:\images\cat.jpg");
      pstmt.setBlob(2, fin);
      pstmt.execute();
      //Retrieving the data
      ResultSet rs = stmt.executeQuery("select * from SampleTable");
      int i = 1;
      System.out.println("Contents of the table are: ");
      while(rs.next()) {
         System.out.println(rs.getString("Name"));
         Blob blob = rs.getBlob("Image");
         byte byteArray[] = blob.getBytes(1,(int)blob.length());
         FileOutputStream outPutStream = new
         FileOutputStream("E:\images\blob_output"+i+".jpg");
         outPutStream.write(byteArray);
         System.out.println("E:\images\blob_output"+i+".jpg");
         System.out.println();
         i++;
      }
   }
}

输出

Connection established......
Table Created
Contents of the table are:
sample image
E:\images\blob_output1.jpg
您可能感兴趣的文档:

--结束END--

本文标题: 什么是 JDBC Blob 数据类型?如何存储和读取其中的数据?

本文链接: https://www.lsjlt.com/news/438251.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

本篇文章演示代码以及资料文档资料下载

下载Word文档到电脑,方便收藏和打印~

下载Word文档
猜你喜欢
  • 什么是 JDBC Blob 数据类型?如何存储和读取其中的数据?
    BLOB 是二进制大对象,可以容纳可变数量的数据,最大长度为 65535 个字符。它们用于存储大量二进制数据,例如图像或其他类型的数据。文件。定义为 TEXT 的字段也保存大量数据。两者之间的区别在于,存储数据的排序和比较在 BLOB 中区...
    99+
    2023-10-22
  • 什么是 JDBC Blob 数据类型如何存储和读取其中的数据
    JDBC Blob(Binary Large Object)是一种用于存储大型二进制数据的数据类型,比如图片、音频、视频等。在数据库...
    99+
    2023-10-10
    JDBC
  • 数据库中blob类型如何存取
    在数据库中存取blob类型的数据,可以使用以下方法:1. 通过编程语言的API将blob数据写入数据库。大多数编程语言都提供了API...
    99+
    2023-09-21
    数据库
  • MySQL 中的 BLOB 和 TEXT 数据类型有什么区别?
    BLOB代表Binary Large Objects,顾名思义,它可以用于存储二进制数据,而TEXT用于存储大量字符串。 BLOB可以用来存储二进制数据,这意味着我们还可以存储图片、视频、声音和程序。 例如,下面的图像可以存储为 BLOB,...
    99+
    2023-10-22
  • Java中的数据类型存储:Git有什么作用?
    在Java编程中,数据类型存储是非常重要的一部分。Java中的数据类型包括原始数据类型和引用数据类型,它们各自具有不同的特性和用途。而Git则是一个非常强大的版本控制工具,它可以帮助我们更好地管理代码和项目。本文将介绍Java中的数据类型...
    99+
    2023-09-18
    git 数据类型 存储
  • Python如何存储和读取ASCII码形式的byte数据
    目录存储和读取ASCII码形式的byte数据Python ASCII码的获取存储和读取ASCII码形式的byte数据 Python可以存byte数据到txt,但不要用str的方式直接...
    99+
    2022-11-11
  • GO语言中存储数据类型的最佳实践是什么?
    在GO语言中,存储数据类型是非常重要的一部分,它直接影响着我们程序的性能和可维护性。因此,我们需要了解GO语言中存储数据类型的最佳实践。 使用内置类型 GO语言内置了许多基本数据类型,如整数、浮点数、字符串、布尔值等。使用内置类型可以...
    99+
    2023-06-05
    存储 数据类型 自然语言处理
  • Git对Java中的数据类型存储有什么影响?
    Git作为一款分布式版本控制工具,在Java开发中使用非常广泛。Java是一门面向对象编程语言,数据类型的存储对于程序的正确性和性能有着非常重要的影响。那么,在使用Git进行版本控制的同时,它对Java中的数据类型存储有哪些影响呢?本文将...
    99+
    2023-09-18
    git 数据类型 存储
  • PHP中数据类型的分类及其应用场景是什么?
    PHP是一种广泛使用的服务器端编程语言。在PHP中,数据类型是程序员必须了解的一个重要概念。在本文中,我们将讨论PHP中的数据类型及其应用场景。 PHP中的数据类型可以分为以下几类: 整数类型(Integer) 浮点数类型(Float) ...
    99+
    2023-11-08
    日志 数据类型 apache
  • Go语言并发、存储和数据类型的最佳实践是什么?
    Go语言是一种高效、简洁和易于学习的编程语言,它在并发编程、存储和数据类型上有着独特的优势。本文将为你介绍Go语言在并发、存储和数据类型方面的最佳实践。 一、并发编程 Go语言的并发编程是其最大的特点之一。Go语言通过goroutine和c...
    99+
    2023-08-20
    并发 存储 数据类型
  • 存储JavaScript数据类型时,GO语言的最佳实践是什么?
    在开发应用程序时,存储数据是必须的一步。对于JavaScript开发者来说,存储数据时最常用的方法是将数据存储在浏览器的本地存储中。但是,当你使用GO语言进行开发时,存储JavaScript数据类型时可能会遇到一些挑战。在本文中,我们将探讨...
    99+
    2023-11-12
    数据类型 存储 javascript
  • 如何使用Git来存储Java中的不同数据类型?
    Git是一个流行的版本控制工具,它可以帮助开发者在开发过程中管理和追踪代码的变化。在Java开发中,我们经常会使用不同的数据类型,如何在Git中存储这些数据类型呢?本文将为您介绍如何使用Git来存储Java中的不同数据类型。 一、Git基础...
    99+
    2023-09-18
    git 数据类型 存储
  • Java中异步编程如何影响数据类型的存储?
    Java是一种面向对象的编程语言,其支持异步编程。在异步编程中,操作在后台线程中执行,而不是在主线程中执行。由于异步编程的特性,它对数据类型的存储有着重要的影响。 Java中异步编程的实现方式有多种,其中最常见的是使用线程池和Future。...
    99+
    2023-08-19
    存储 异步编程 数据类型
  • MySQL中的数据类型和schema优化是什么
    小编给大家分享一下MySQL中的数据类型和schema优化是什么,希望大家阅读完这篇文章后大所收获,下面让我们一起去探讨吧!1. 选择优化的数据类型MySQL支持的数据类型有很多,而如何选择出正确的数据类型...
    99+
    2022-10-18
  • PHP中的数据类型是什么?如何使用API和NPM?
    PHP是一门广泛应用于Web开发的脚本语言,它支持多种数据类型,如整型、浮点型、字符串、数组、对象等。在本文中,我们将介绍PHP中的数据类型及其用法,并探讨如何使用API和NPM。 一、PHP中的数据类型 整型 整型是指不带小数点的数...
    99+
    2023-09-14
    数据类型 api npm
  • 如何在 PHP 中使用 NumPy 数据类型进行存储和处理?
    NumPy 是一个广泛使用的 Python 库,用于进行数值计算。它提供了一种方便的方式来存储和处理大型数据集,尤其是在科学计算中。虽然 NumPy 是用 Python 编写的,但是它的底层代码是用 C 和 Fortran 编写的,因此它非...
    99+
    2023-10-02
    数据类型 存储 numpy
  • Go语言中数据类型和函数的关系是什么?
    在Go语言中,数据类型和函数是紧密相关的概念。因为在函数中,我们需要传递各种类型的数据作为参数,并且函数的返回值也需要指定数据类型。在本文中,我们将探讨Go语言中数据类型和函数的关系,包括函数参数的类型、函数返回值的类型、自定义数据类型和...
    99+
    2023-08-13
    数据类型 教程 函数
  • Java中的数据类型:如何在Git中有效地管理存储?
    Java是一门强类型语言,变量必须在声明时指定其数据类型。Java的数据类型包括基本数据类型和引用数据类型。在Git中,如何有效地管理这些数据类型呢?本文将介绍Java中的数据类型以及在Git中管理数据类型的最佳实践。 一、Java中的数据...
    99+
    2023-09-18
    git 数据类型 存储
  • SQL中datetime和interval数据类型的作用是什么
    这篇文章将为大家详细讲解有关SQL中datetime和interval数据类型的作用是什么,文章内容质量较高,因此小编分享给大家做个参考,希望大家阅读完这篇文章后对相关知识有一定的了解。SQL数据类型如果你...
    99+
    2022-10-18
  • 如何在Go语言中高效处理并发、存储和数据类型?
    Go语言是一种开源编程语言,由Google开发。它的并发模型和内存管理机制是其最大的特点之一,同时也被广泛应用于网络编程、云计算、大数据处理等领域。在本文中,我们将介绍如何在Go语言中高效处理并发、存储和数据类型。 一、并发处理 Go语言的...
    99+
    2023-08-20
    并发 存储 数据类型
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作