采用Blob类型提供的方法输出Blob

上篇以IO流的形式读取Blob字段,还可以采用Blob类型提供的方法输出Blob:

package com.mldn;

import java..DriverManager;

import java..Connection;

import java..PreparedStatement;

import java..ResultSet;

import java..Blob;

import java.io.File;

import java.io.OutputStream;

import java.io.FileOutputStream;

public class BlobDemo1

{

/**

读取二进制

*/

// 连接驱动路径

public static final String DRIVER = “com..jdbc.Driver”; // “org.gjt.mm..driver”

// 定义数据源URL:数据库地址

public static final String DBURL = “jdbc:://localhost:3306/BigOb?characterEncoding=utf8”;

// 定义数据库登录的用户名:

public static final String USERNAME = “root”;

// 定义数据库登录的密码:

public static final String PASSWORD = “123456”;

public static void main(String[] args) throws Exception // 抛出所有异常

{

Connection conn = null; // 数据库连接

PreparedStatement pstmt = null; // 预处理语句

ResultSet rs = null; // 输出结果

// 加载数据库驱动

Class.forName(DRIVER);

// 获取数据库连接

conn = DriverManager.getConnection(DBURL, USERNAME, PASSWORD);

int id = 1; // 指定查询

// 预查询语句

String sql = “SELECT id, name, photo FROM Bigob where id = ?”;

// 预处理操作对象

pstmt = conn.prepareStatement(sql);

// 设置预处理

pstmt.setInt(1, id);

// 执行查询

rs = pstmt.executeQuery();

// 只进行一次操作

if (rs.next()) // rs每次调用标记一行,存在返回true,基于ResultSet的所有操作都必须先定位:标记行后再展开读取操作!

{

String name = rs.getString(2);

Blob blob = rs.getBlob(“photo”); // 获取Blob对象

byte[] bytes = blob.getBytes(1, (int)blob.length()); // 将整个图片数据一次性读入内存:前提内存空间足够

File file = new File(“/home/ubuntu/logo.jpg”); // 输出文件

OutputStream out = null;

out = new FileOutputStream(file); // 实例化输出流

out.write(bytes); // 一次性写入磁盘

out.close();

System.out.println(“图片名称:” + rs.getString(“name”)); // 获取图片名称

}

// 关闭操作与连接

rs.close();

pstmt.close();

conn.close();

}

}

/*

ubuntu@xu-desktop:~$ java com.mldn.BlobDemo1

图片名称:logo-edubuntu.png

// 此时/home/ubuntu/下出现logo.png图片!

// 使用Blob的操作,比使用IO流输出方便地多

*/

// 一般大型数据不会直接保存在数据库中,上存储的电影,不可能保存在数据库中,那样下载的操作太复杂了,这时候采用一种方案:
//数据库保存的是文件存储路径的映射!访问的时候将从该路径访问!

声明: 除非转自他站(如有侵权,请联系处理)外,本文采用 BY-NC-SA 协议进行授权 | 智乐兔
转载请注明:转自《采用Blob类型提供的方法输出Blob
本文地址:https://www.zhiletu.com/archives-160.html
关注公众号:智乐兔

赞赏

wechat pay微信赞赏alipay pay支付宝赞赏

上一篇
下一篇

相关文章

在线留言

你必须 登录后 才能留言!

在线客服
在线客服 X

售前: 点击这里给我发消息
售后: 点击这里给我发消息

智乐兔官微