BLOB:大数据,大对象,在数据库中用来存储超长文本的数据,例如图片等
将一张图片存储在mysql中,并读取出来(BLOB数据:插入BLOB类型的数据必须使用PreparedStatement,因为插入BLOB类型的数据无法使用字符串拼写):
------------------------------------------------------------------------------------------------------------------
package com.lanqiao.javatest;
import java.io.File;
import java.io.FileInputStream;
import java.io.FileOutputStream;
import java.io.InputStream;
import java.io.OutputStream;
import java.sql.Blob;
import java.sql.Connection;
import java.sql.Date;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.util.HashMap;
import java.util.Map;
import javax.xml.crypto.Data;
import org.junit.Test;
import com.mysql.jdbc.ResultSetMetaData;
/*大数据,大对象,用来存储超长文本的数据,例如图片等;
* BLOB数据:插入BLOB类型的数据必须使用PreparedStatement,
* 因为插入BLOB类型的数据无法使用字符串拼写
* 调用方法:
* InputStream inputStream=new FileInputStream("Kn=sW70mL7A.jpg");
* preparedstatement.setBlob(4, inputStream);
* */
public class Test12 {
static Test1 t=new Test1();
//语句插入
@Test
public void testInsertBlob() throws Exception{
Connection connection=null;
PreparedStatement preparedstatement=null;
try {//往数据库张插入数据
connection=t.getConnection();
String sql="insert into customer (name,email,birth,picture) values(?,?,?,?)";
preparedstatement=connection.prepareStatement(sql);
preparedstatement.setString(1, "liquafd");
preparedstatement.setString(2, "fsdfdf");
preparedstatement.setDate(3, new Date(new java.util.Date().getTime()));
//向数据库中插入一张图片
//数据库中图片的类型是mediumblob,图片存储在程序的bin里面
InputStream inputStream=new FileInputStream("Kn=sW70mL7A.jpg");
preparedstatement.setBlob(4, inputStream);
//获取实时时间的方法Date date=new Date(new java.util.Date().getTame);
preparedstatement.executeUpdate();
} catch (Exception e) {
e.printStackTrace();
}finally {
if(preparedstatement!=null){
preparedstatement.close();
}
if(connection!=null){
connection.close();
}
}
}
//测试数据库是否连接成功
public void testBlob() throws Exception{
System.out.println(t.getConnection());
}
//查询插入的数据
public void getT() throws Exception{
Connection connection=null;
PreparedStatement preparedStatement=null;
ResultSet resultSet=null;
try {
//获取connection连接
connection=t.getConnection();
//获取
String sql="select id,name,email,birth,picture from customer where id=36";
preparedStatement=connection.prepareStatement(sql);
resultSet=preparedStatement.executeQuery();
if(resultSet.next()){
int id=resultSet.getInt(1);
String name=resultSet.getString(2);
String email=resultSet.getString(3);
Data birth=(Data) resultSet.getDate(4);
// preparedstatement.setDate(4, new Date(new java.util.Date().getTime())
//插入时使用
Blob picture=resultSet.getBlob(5);
InputStream in=picture.getBinaryStream();
OutputStream out=new FileOutputStream("Kn=sW70mL7A.jpg");
byte [] b=new byte[1024];
int len;
while((len=in.read(b))!=-1){
out.write(b, 0, len);
}
out.close();
in.close();
}
} catch (Exception e) {
e.printStackTrace();
}finally {
if (resultSet!=null) {
resultSet.close();
}
if (preparedStatement!=null) {
preparedStatement.close();
}
if (connection!=null) {
connection.close();
}
}
}
}
转载于:https://www.cnblogs.com/lxnlxn/p/5773305.html
BLOB:大数据,大对象,在数据库中用来存储超长文本的数据,例如图片等相关推荐
- 利用python编写爬虫程序,从招聘网站上爬取数据,将数据存入到MongoDB数据库中,将存入的数据作一定的数据清洗后做数据分析,最后将分析的结果做数据可视化
教程演示 创建爬虫项目 编写需要爬取的字段(items.py) 编写spider文件(wuyou.py) 编写数据库连接(pipelines.py) 编写反爬措施(settings.py) Mongo ...
- 从“交易核心”到“数据核心”,国产数据库要换道超车丨数据猿专访
数据智能产业创新服务媒体 --聚焦数智 · 改变商业 一直以来,数据库都被国外科技企业垄断,并与芯片.操作系统合称为我国科技产业的三大"心病".接下来几十年,都将是中国产业升 ...
- 连接数据孤岛,巨杉数据库与 Tapdata 联合共建开放数据生态
近日,专注实时数据服务平台的Tapdata ,宣布开源其数据源开发框架--PDK(Plugin Development Kit),并同步启动PDK插件生态共建计划,旨在充分激发实时数据流动的价值,助力 ...
- kibana数据导入导出_MySQL数据库批量导出和导入查询数据
MySQL数据库批量导出和导入查询数据的过程是使用-e参数去执行命令. 由于工作需要,我需要先在一个MySQL库中查询出结果,然后以查出结果为参数,去放入另外一个MySQL数据库中当成where的条件 ...
- 袋鼠云数据湖平台「DataLake」,存储全量数据,打造数字底座
一.什么是数据湖? 在探讨数据湖技术或如何构建数据湖之前,我们需要先明确,什么是数据湖? 数据湖的起源,应该追溯到2010年10月.基于对半结构化.非结构化存储的需求,同时为了推广自家的Pentaho ...
- python numpy读取数据_numpy中以文本的方式存储以及读取数据方法
这篇文章主要介绍了关于numpy中以文本的方式存储以及读取数据方法,有着一定的参考价值,现在分享给大家,有需要的朋友可以参考一下 Numpy中除了能够把数据以二进制文件的方式保存到文件中以外,还可以选 ...
- sql数据迁移到oracle数据库,从Oracle到SQL Server数据库主键的迁移
由于项目需要要将以前Oracle的数据库转化为SQL Server,今天利用SQL Server的DTD进行数据库的迁移,但导入以后发现只导入了表结构和数据,而表的一些主键约束都没导过来,感觉很郁闷, ...
- c# 向mysql插入数据_C#连接mysql数据库 及向表中插入数据的方法
mysql 语句操作: 创建数据库:create database hotelATMDb; use hotelATMDb; C#连接mysql 1.引用 dll MySql.Data.dll 下载地址 ...
- 计算机术语blob是什么东西?( binary large object,二进制大对象,是一个可以存储二进制文件的容器)(典型的BLOB是一张图片或一个声音文件)
看hikflow_demo源码,搞不清楚blob是什么玩意,, 查了一下: BLOB (binary large object),二进制大对象,是一个可以存储二进制文件的容器. 在计算机中,BLOB常 ...
- 基于Python的海量豆瓣电影、数据获取、数据预处理、数据分析、可视化、大屏设计项目(含数据库)
目录 项目介绍 研究背景 国内外研究现状分析 研究目的 研究意义 研究总体设计 网络爬虫介绍 豆瓣电影数据的采集 数据预处理 大数据分析及可视化 豆瓣影评结构化分析 大屏可视化 文本可视化 总结 每文 ...
最新文章
- Android N新特性
- 2、Power Query-动态汇总单元格区域数据
- python计算最大回撤_Python进阶量化交易场外篇3——最大回撤评价策略风险
- 网络安全应急演练方案内容_开展应急演练,筑牢网络安全
- 使用Exchange 的SMTP连接器路由/中继邮件的设定图例
- Java手写Hashmap(HashMap的基本用法)
- 初学者是学习 C 语言还是 C++ 好?各有何利弊?
- php自增删除开始,PHP的自增自减操作
- Lifecycle使用与分析-基础
- php7 验证url格式,url的组成格式为
- 新型APT组织正在攻击全球的政府实体
- python dynamic array
- Foobar2000是一款完全可定制的音乐播放器
- 企业微信 PC端多开
- Scala-Day13
- Flask蓝本与子域名
- 2021年WordPress博客装修美化(一)
- 入门vue+springboot项目
- 十大众筹PC:硅谷新生代如何打造下一代计算机
- centos单机部署greenplum
热门文章
- python开根号函数图像_使用matplotlib / python的平方根刻度
- gif分解工具_Python之GIF图倒放,沙雕快乐源泉!我已经笑了一天了!
- 计算机入门建模观后感,实习生revit学习心得-初学Revit有感
- android 重新点击图标显示不出来了,android开发怎么弄成,点击图标后弹出一个消息框。主界面不显示...
- mysql一对一关系_sql-MySQL-一对一关系?
- Nginx - 限制并发、限制访问速率、限制流量
- vue无法监听对象的属性的增加和删除
- php 配置文件类,PHP配置文件类
- oracle 启动_oracle实验--通过gdb工具研究数据库启动过程
- 【渝粤教育】国家开放大学2018年春季 7138-21T人际交流与沟通 参考试题