-
Java mysql blob 数据读写操作
package com.lw.database; import java.io.FileInputStream; import java.io.FileOutputStream; import java.io.IOException; import java.io.InputStream; import java.sql.Connection; import java.sql.DriverManager; import java.sql.PreparedStatement; import java.sql.ResultSet; import java.sql.SQLException; /** * CREATE: CREATE TABLE IDCard ( id char(18),pic BLOB); * @author fhadmin * from www.fhadmin.cn */ public class LOBTest { protected static final String DEFAULT_URL = "jdbc:mysql://127.0.0.1:3306/test?useUnicode=true&characterEncoding=utf8"; protected static final String DRIVER_NAME = "com.mysql.jdbc.Driver"; private Connection connection = null; public LOBTest() throws ClassNotFoundException, SQLException { Class.forName(DRIVER_NAME); connection = DriverManager.getConnection(DEFAULT_URL, "user", "password"); } public void insert(String id,String path) throws SQLException, IOException { PreparedStatement preparedStatement = connection.prepareStatement("INSERT INTO IDCard VALUES (?,?)"); preparedStatement.setString(1, id); FileInputStream fileInputStream = new FileInputStream(path); preparedStatement.setBlob(2, fileInputStream,fileInputStream.available()); preparedStatement.execute(); } public void get(String id) throws SQLException, IOException { PreparedStatement preparedStatement = connection.prepareStatement("SELECT pic FROM IDCard WHERE id = ?"); preparedStatement.setString(1, id); ResultSet results = preparedStatement.executeQuery(); while(results.next()) { FileOutputStream outputStream = new FileOutputStream("/Users/liuwei/temp.png"); InputStream inputStream = results.getBinaryStream(1); int num = -1; while((num=inputStream.read())!=-1) { outputStream.write(num); } outputStream.flush(); inputStream.close(); outputStream.close(); } } public static void main(String[] args) throws ClassNotFoundException, SQLException, IOException { LOBTest test = new LOBTest(); test.insert("78907656784323", "/Users/liuwei/Documents/bt_next_nor.png"); test.get("78907656784323"); } }
注意:
MySQL的四种BLOB类型
类型 大小(单位:字节)
TinyBlob 最大 255B
Blob 最大 65K
MediumBlob 最大 16M
LongBlob 最大 4G
插入图像的时候,注意下图像大小,图像超过该类型所能容纳的最大字节的时候,会报错
出处:
最新更新
python爬虫及其可视化
使用python爬取豆瓣电影短评评论内容
nodejs爬虫
Python正则表达式完全指南
爬取豆瓣Top250图书数据
shp 地图文件批量添加字段
爬虫小试牛刀(爬取学校通知公告)
【python基础】函数-初识函数
【python基础】函数-返回值
HTTP请求:requests模块基础使用必知必会
SQL SERVER中递归
2个场景实例讲解GaussDB(DWS)基表统计信息估
常用的 SQL Server 关键字及其含义
动手分析SQL Server中的事务中使用的锁
openGauss内核分析:SQL by pass & 经典执行
一招教你如何高效批量导入与更新数据
天天写SQL,这些神奇的特性你知道吗?
openGauss内核分析:执行计划生成
[IM002]Navicat ODBC驱动器管理器 未发现数据
初入Sql Server 之 存储过程的简单使用
uniapp/H5 获取手机桌面壁纸 (静态壁纸)
[前端] DNS解析与优化
为什么在js中需要添加addEventListener()?
JS模块化系统
js通过Object.defineProperty() 定义和控制对象
这是目前我见过最好的跨域解决方案!
减少回流与重绘
减少回流与重绘
如何使用KrpanoToolJS在浏览器切图
performance.now() 与 Date.now() 对比