Blob 是指二进制大对象(Binary Large Object),而 Clob 是指大字符对象

(Character Large Objec),因此其中 Blob 是为存储大的二进制数据而设计的,

而 Clob 是为存储大的文本数据而设计的。JDBC 的 PreparedStatement 和

ResultSet 都提供了相应的方法来支持 Blob 和 Clob 操作。下面的代码展示了如

何使用 JDBC 操作 LOB:

下面以 MySQL 数据库为例,创建一个张有三个字段的用户表,包括编号(id)、

姓名(name)和照片(photo),建表语句如下:

create table tb_user

(

id int primary key auto_increment,

name varchar(20) unique not null,

photo longblob

);

下面的 Java 代码向数据库中插入一条记录:

import java.io.FileInputStream;

import java.io.IOException;

import java.io.InputStream;

import java.sql.Connection;

import java.sql.DriverManager;

import java.sql.PreparedStatement;

import java.sql.SQLException;

class JdbcLobTest {

public static void main(String[] args) {

Connection con = null;

try {

// 1. 加载驱动(Java6 以上版本可以省略)

Class.forName("com.mysql.jdbc.Driver");

// 2. 建立连接

con =

DriverManager.getConnection("jdbc:mysql://localhost:3306/test", "root",

"123456");

// 3. 创建语句对象

PreparedStatement ps = con.prepareStatement("insert into

tb_user values (default, ?, ?)");

ps.setString(1, "骆昊");

// 将 SQL 语句中第一个

占位符换成字符串

try (InputStream in = new FileInputStream("test.jpg"))

{

// Java 7 的 TWR

ps.setBinaryStream(2, in);

// 将 SQL 语句中第二个占

位符换成二进制流

// 4. 发出 SQL 语句获得受影响行数

System.out.println(ps.executeUpdate() == 1 ? "插入成功

" : "插入失败");

} catch(IOException e) {

System.out.println("读取照片失败!");

}

} catch (ClassNotFoundException | SQLException e) {

// Java

7 的多异常捕获

e.printStackTrace();

} finally { // 释放外部资源的代码都应当放在 finally 中保证其能够得

到执行

try {

if(con != null && !con.isClosed()) {

con.close();

// 5. 释放数据库连接

con = null;

// 指示垃圾回收器可以回收该对象

}

} catch (SQLException e) {

e.printStackTrace();

}

}

}

}

JDBC 能否处理 Blob 和 Clob?的更多相关文章

  1. Blob和Clob在JDBC中的简介

    数据库在当今的应用越来越广泛了,同样伴随着领域的广泛,存储的内容也不在是只有数值.字符.boolean几种类型,而是越来越多样化.在这样的前提下就出现了Blob和Clob两个类型.下面我将对这个两个类 ...

  2. Oracle中Blob和Clob类型的区别与操作

    Oracle中Blob和Clob类型 1.Oracle中Blob和Clob类型的区别 BLOB和CLOB都是大字段类型,BLOB是按二进制来存储的,而CLOB是可以直接存储文字的.其实两个是可以互换的 ...

  3. Java -- JDBC 学习--处理Blob

    Oracle LOB LOB,即Large Objects(大对象),是用来存储大量的二进制和文本数据的一种数据类型(一个LOB字段可存储可多达4GB的数据).LOB 分为两种类型:内部LOB和外部L ...

  4. Hibernate保存Blob和Clob类型的数据

    虽然非常不建议在数据库中保存Blob和Clob类型的数据,但真的要有这样的需求呢?这里记录一下使用Hibernate如何向数据库中保存Blob和Clob数据. Oracle和MySql在Blob类型上 ...

  5. Spring 让 LOB 数据操作变得简单易行,LOB 代表大对象数据,包括 BLOB 和 CLOB 两种类型

    转自:https://www.ibm.com/developerworks/cn/java/j-lo-spring-lob/index.html 概述 LOB 代表大对象数据,包括 BLOB 和 CL ...

  6. oracle中Blob和Clob类型的区别

    BLOB和CLOB都是大字段类型,BLOB是按二进制来存储的,而CLOB是可以直接存储文字的.其实两个是可以互换的的,或者可以直接用LOB字段代替这两个.但是为了更好的管理ORACLE数据库,通常像图 ...

  7. 操作BLOB、CLOB、BFILE

    BFILE        二进制文件,存储在数据库外的操作系统文件,只读的.把此文件当二进制处理. BLOB        二进制大对象.存储在数据库里的大对象,一般是图像声音等文件. CLOB    ...

  8. BLOB TO CLOB

    CREATE OR REPLACE FUNCTION blob_to_clob (blob_in IN BLOB) RETURN CLOB AS v_clob CLOB; v_varchar VARC ...

  9. Hibernate or JPA Annotation中BLOB、CLOB注解写法

    BLOB和CLOB都是大字段类型,BLOB是按二进制字节码来存储的,而CLOB是可以直接存储字符串的. 在hibernate or JPA Annotation中,实体BLOB.CLOB类型的注解与普 ...

随机推荐

  1. PhpStudy集成环境安装教程

    地址:https://www.xp.cn/ 下载软件,直接安装即可.注意路径不能带有空格.安装完成,启动后如下图: 1.数据库的小白操作:先启动服务器Apache和数据库MySQL,如箭头所示 2.可 ...

  2. 手把手教你vmware导入centos7虚拟机

    安装vmware 安装vmware15:https://www.cnblogs.com/uncleyong/p/10740005.html 可能遇到的问题:VMware提示此主机支持Intel VT- ...

  3. sql注入之报错注入and boolean注入

    1.sql注入之报错注入 正常传参,返回页面正常: 加入'  返回页面报错,出现"zhangsan"' 报错注入使用的函数 在这里我们使用 select updatexml(1,c ...

  4. CSRF靶场练习

    实验目的 了解CSRF跨站伪造请求实验 实验原理 CSRF的原理 CSRF(Cross-site Request Forgery)是指跨站点请求伪造,也就是跨站漏洞攻击,通常用来指 WEB 网站的这一 ...

  5. EXCEL应用之商机分析:企业商机分析模板免费用

    ​一.分析背景 商机是订单的来源,因此抓住每个销售机会,就可以更多地赢得交易.商机管理可以说是业务环节中最为关键的一步.每个企业都有自己的商机阶段划分,从销售人员接触客户.发现商机.跟进商机.推进销售 ...

  6. 【C# 线程】C++与C#数据类型对照表

    详细:http://lzltool.com/doc/csharptocaddadd

  7. 计算机网络-IP篇

    目录 IP 基本认识 IP地址 IP 地址的分类 公有 IP 地址与私有 IP 地址 IP 地址与路由控制 IP 分⽚与重组 IPv6 基本认识 IPv4 ⾸部与 IPv6 ⾸部 IP协议 DNS A ...

  8. 5.注入内部Bean

    我们将定义在 <bean> 元素的 <property> 或 <constructor-arg> 元素内部的 Bean,称为"内部 Bean". ...

  9. c++刷leetcode记录

    #include<iostream> #include<sstream> #include<vector> std::vector<int> split ...

  10. python opencv识别蓝牌车牌号 之 取出车牌号 (1/3)

    概述 车牌识别是计算机视频图像识别技术在车辆牌照识别中的一种应用,通常来讲如果结合opencv进行车牌识别主要分为四个大步骤,分别为: 图像采集 车牌定位 分割车牌字符 字符识别 当然,如果结合了机器 ...