MySQL存储文本和图片
Oracle中大文本数据类型,
Clob 长文本类型 (MySQL中不支持,使用的是text)
Blob 二进制类型
MySQL数据库,
Text 长文本类型TINYTEXT: 256 bytesTEXT: 65,535 bytes => ~64kbMEDIUMTEXT: 16,777,215 bytes => ~16MBLONGTEXT: 4,294,967,295 bytes => ~4GB
Blob 二进制类型
例如:
建表
CREATE TABLE test(id INT PRIMARY KEY AUTO_INCREMENT,content LONGTEXT, -- 文本字段img LONGBLOB -- 图片字段
);
存储文本时是以字符类型存储,存储图片时是以二进制类型存储,具体使用的设置参数方法,和获取数据方法不同。
例如:
// 存储文本时
// 存储时,设置参数为字符流 FileReader reader
pstmt.setCharacterStream(1, reader);
// 获取参数时
// 方式1:
Reader r = rs.getCharacterStream("content");
// 获取长文本数据, 方式2:
System.out.print(rs.getString("content"));// 存储二进制图片时
// 设置参数为2进制流 InputStream in
pstmt.setBinaryStream(1, in);
// 获取2进制流
InputStream in = rs.getAsciiStream("img");
/*** 保存照片* */
@Test
public void test2(){String sql = "insert into test(img) values(?)";try{con = JDBCUtil.getConnection();pstmt = con.prepareStatement(sql);// 设置参数// 获取文本File file = new File("f:/a.jpg");InputStream in = new FileInputStream(file);// 设置参数为2进制流pstmt.setBinaryStream(1, in);// 执行sqlpstmt.executeUpdate();in.close();}catch (Exception e) {e.printStackTrace();}finally{try {JDBCUtil.close(con, pstmt);} catch (Exception e) {// TODO Auto-generated catch blocke.printStackTrace();}}
}/*** 获取照片* */
@Test
public void test3(){String sql = "select * from test where id=?;";try{con = JDBCUtil.getConnection();pstmt = con.prepareStatement(sql);// 设置参数pstmt.setInt(1, 2);// 执行查询rs = pstmt.executeQuery();while(rs.next()){byte[] buff = new byte[1024];InputStream in = rs.getAsciiStream("img");int l=0;OutputStream out = new FileOutputStream(new File("f:/1.jpg"));while((l=in.read(buff))!=-1){out.write(buff, 0, l);}in.close();out.close();}}catch (Exception e) {e.printStackTrace();}finally{try {JDBCUtil.close(con, pstmt);} catch (Exception e) {// TODO Auto-generated catch blocke.printStackTrace();}}
}
MySQL存储文本和图片相关推荐
- mysql存储新闻文字图片的字段类型
mysql存储新闻文字图片的字段类型,使用text类型. mysql中text是大字段类型对应oracle中应该是clob(处理大长度的字符串),varchar类型对应varchar2.
- scrapy豆瓣爬虫mysql存储名字有图片的问题(关于utf8mb4)
若干知识点 1.数据库cursor.fetchall()的返回类型: out: [{'detail_link': 'https://movie.douban.com/subject/1291546/' ...
- mysql存储和读取图片
首先,介绍一下mysql相关的数据类型:MySQL中有四种BLOB类型,TinyBlob(最大255Byte), Blob(最大65K), MediunBlob(16M), LongBlob(最大4G ...
- mysql 存储文本数据类型_MYSQL中的五种数据类型
MYSQL中的五种数据类型:字符型,文本型,数值型,逻辑型和日期型 字符型 VARCHAR VS CHAR VARCHAR型和CHAR型数据的这个差别是细微的,但是非常重要.他们都是用来储存字符串长度 ...
- mySql存储,读取图片
step1 创建表 step2 数据库链接工具类 package qq; import java.sql.Connection; import java.sql.DriverManager; im ...
- mysql怎么放入图片_往MySQL中存储图片的方法
1 介绍 在设计到数据库的开发中,难免要将图片或音频文件插入到数据库中的情况.一般来说,我们可以同过插入图片文件相应的存储位置,而不是文件本身,来避免直接向数据库里插入的麻烦.但有些时候,向MySQL ...
- mysql存储图片_Python
MySQL存储图片的二进制,其字段设置为blob属性,二进制数据 1.连接数据库 import pymysql import sysconn=pymysql.connect(host='localho ...
- java用mysql存储图片_Java存储图片到Mysql
该楼层疑似违规已被系统折叠 隐藏此楼查看此楼 [1]视图层 action="${ctx}/web/UserInforServlet?method=userInforServlet" ...
- mysql数据库存歌_如何在mysql中存储音乐和图片文件
标签: 如何在mysql中存储音乐和图片文件? 果你想把二进制的数据,比如说图片文件和HTML文件,直接保存在你的MySQL数据库,那么这篇文章就是为你而写的! 我将告诉你怎样通过HTML表单来储存这 ...
最新文章
- 计算机组成原理读写周期波形图,第3章存储器层次结构-1讲述.ppt
- 使用VMware Infrastructure Client中的VMware Server 2.0.x的管理
- keras merge
- 制作最小Linux系统并且让其在新的虚拟机上运行
- vue 保留两位小数 不能直接用toFixed(2) ?
- asp.net的get和post请求
- OpenGL的简单研究-开端
- Python 'takes exactly 1 argument (2 given)' Python error
- 华为0基础——(练习用)挑7
- Angular getOrCreateInjectable的实现原理调试
- 使用命令行结合jq提取出Kubernetes配置文件里的secret信息
- [python] 之 常用内建函数
- Eclipse中@author的修改
- win11菜单栏的推荐项目怎么取消 windows11取消推荐项目的设置方法
- dml操作mysql_数据库DML操作(DCL了解)
- 聚合函数和group by
- typedef NS_ENUM 等枚举介绍
- mysql中怎么防止数据丢失
- CoffeeScript笔记
- k8s_day03_02