Mysql中大数据类型的存取
标准SQL中提供了八种大数据类型
上面四种是针对字节数据(二进制字符串类型,主要存储图片、音频信息等),下面四种是针对字符数据(非二进制字符串类型,纯文本文件)。
MySql中不使用标准SQL中针对字符数据的类型,而是使用
下面实现对mp3的存放,首先建一个表music
这里数据类型使用mediumblob类型,使用JDBC进行存储
import java.io.FileInputStream;
import java.io.FileNotFoundException;
import java.io.FileOutputStream;
import java.io.IOException;
import java.io.InputStream;
import java.io.OutputStream;
import java.sql.Blob;
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.util.Properties; import javax.sql.rowset.serial.SerialBlob; import org.apache.commons.io.IOUtils;
import org.junit.Test; public class InsertBlog {
/**
* @throws SQLException
* @throws FileNotFoundException
* @throws IOException
* @throws ClassNotFoundException
* 从配置文件dbconfig.properties中读取JDBC连接四大参数
* 使用IOutils包,需要导包
*/
@Test public void insert() throws SQLException, FileNotFoundException,
IOException, ClassNotFoundException { InputStream in = InsertBlog.class.getClassLoader().getResourceAsStream(
"dbconfig.properties");
Properties pro = new Properties();
pro.load(in);
String url = pro.getProperty("url");
String name = pro.getProperty("name");
String password = pro.getProperty("password");
String drivername = pro.getProperty("DriverClassName");
System.out.println(url + "" + name + "" + password + "" + drivername);
Class.forName(drivername); Connection conn = DriverManager.getConnection(url, name, password);
String sql = "insert into music values(?,?,?)";
PreparedStatement ps = conn.prepareStatement(sql);
ps.setInt(1, 1);
ps.setString(2, "你还要我怎样");
System.out.println(111);
byte[] bytes = IOUtils
.toByteArray(new FileInputStream("E:/你还要我怎样.mp3"));
System.out.println(111);
Blob blob = new SerialBlob(bytes);
ps.setBlob(3, blob);
ps.executeUpdate();
} @Test
public void find() throws IOException, ClassNotFoundException, SQLException {
InputStream in = InsertBlog.class.getClassLoader()
.getResourceAsStream("dbconfig.properties");
Properties pro = new Properties();
pro.load(in);
String url = pro.getProperty("url");
String name = pro.getProperty("name");
String password = pro.getProperty("password");
String drivername = pro.getProperty("DriverClassName");
System.out.println(url + "" + name + "" + password + ""
+ drivername);
Class.forName(drivername); Connection conn = DriverManager.getConnection(url, name, password);
String sql = "Select * from music";
PreparedStatement ps = conn.prepareStatement(sql);
ResultSet rs=ps.executeQuery();
if(rs.next()){
Blob blob=rs.getBlob("data");
InputStream n=blob.getBinaryStream();
OutputStream out=new FileOutputStream("E:/大头鬼.mp3");
IOUtils.copy(n,out);
}
} }
Mysql中大数据类型的存取的更多相关文章
- { MySQL基础数据类型}一 介绍 二 数值类型 三 日期类型 四 字符串类型 五 枚举类型与集合类型
MySQL基础数据类型 阅读目录 一 介绍 二 数值类型 三 日期类型 四 字符串类型 五 枚举类型与集合类型 一 介绍 存储引擎决定了表的类型,而表内存放的数据也要有不同的类型,每种数据类型都有自己 ...
- MySQL基础数据类型
一 介绍 存储引擎决定了表的类型,而表内存放的数据也要有不同的类型,每种数据类型都有自己的宽度,但宽度是可选的 详细参考: http://www.runoob.com/mysql/mysql-data ...
- MySQL的数据类型和建库策略详解
无论是在小得可怜的免费数据库空间或是大型电子商务网站,合理的设计表结构.充分利用空间是十分必要的.这就要求我们对数据库系统的常用数据类型有充分的认识.下面我就将我的一点心得写出来跟大家分享. 一.数字 ...
- Mysql 常见数据类型及约束
Mysql 常见数据类型及约束 最近在跟几个不太懂技术的同事(哈哈, 其实我也不懂), 要整一个数据库项目, 然后前端, 后端, 都没有像样的, 数据输出还不是由我们控制.... 这可难受了, 然后总 ...
- 【MySQL】数据类型之数字相关
" 目录 #. 数值类型 1. 数值范围验证 /. 有符号 /. 无符号 2. int类型显示长度验证 #. 浮点型 1. 验证 /. 建表 /. 精度 #. 日期类型 1. 验证 /. y ...
- Mysql基础(三):MySQL基础数据类型、完整性约束、sql_mode模式
目录 2.MySQL基础数据类型.完整性约束.sql_mode模式 1. MySQL常用数据类型 2. 完整性约束 3. MySQL的sql_mode模式说明以及设置 2.MySQL基础数据类型.完整 ...
- 数据库02 /MySQL基础数据类型、完整性约束、sql_mode模式
2.MySQL基础数据类型.完整性约束.sql_mode模式 目录 2.MySQL基础数据类型.完整性约束.sql_mode模式 1. MySQL常用数据类型 MySQL常用数据类型预览 1. 1 数 ...
- MySQL基本数据类型与约束条件
昨日内容回顾 数据存储的演变 # 方向: 朝着更加统一和方便管理 数据库的发展史 # 由本地保存逐步演变为线上保存 数据库的本质 # 本质上就是一款CS架构的软件 """ ...
- MySQL数据库3 - MySQL常用数据类型
一. MySql常用数据类型 数据类型:整数(tinyint smailint int bigint) 定点数 decimal(p,s) ------ 小数点位置固定的 ---> 数 ...
随机推荐
- NPOI操作Excel(一)--NPOI基础
用C#读取Excel的方法有很多中,由于近期工作需要,需要解析的Excel含有合并单元格以及背景色等特殊要求,故在网上查了一些关于读Excel的方法的优缺点,觉得NPOI能满足我的需要,所以搜索了一些 ...
- CDOJ 1962 天才钱vs学霸周2【最大流】
以s=0,t=n+m+1分别为超级源点和超级汇点.网络流中的流量以0为开始,题目要求从1到20,我们先把每个点都减去1,即ai - m,bi - n.然后源点s与n个顶点连容量为ai的路,汇点t与m个 ...
- 用webstorm搭建vue项目
本文只针对新手. 首先要明白几个名词(概念). Node.js: Node.js 是一个基于 Chrome V8 引擎的 JavaScript 运行环境. Node.js 使用了一个事件驱动.非阻塞式 ...
- uva 1232
题意: 建筑物在多长的部分是最高的成为该建筑物的覆盖度.求所有建筑物的覆盖度之和. 链接: https://vjudge.net/contest/202699#problem/E 题解: 这道题还是挺 ...
- ionic2+中修改minSdkVersion的方法
具体方法很简单,直接在config.xml中找到下面这一行 <preference name="android-minSdkVersion" value="17&q ...
- gitlab之五: gitlab之webhook
webhook(网络钩子),一般与jenkins联合使用,gitlab的某个项目的代码更新了后就触发 webhook中配置的 url ,这个url一般是某一个jienkins中某一个job的url.即 ...
- ContentProvider插件化解决方案
--摘自<android插件化开发指南> 1.当要传输的数据量大小不超过1M的时候,使用Binder:数据量超过1M时,Binder就搞不定了,需要ContentProvider 2.Co ...
- PostgreSQL 调用存储过程返回结果集
创建返回结果集类型的存储过程: CREATE OR REPLACE FUNCTION public.f_get_member_info( id integer, productname charact ...
- Python常用模块--collections
collections是Python中一个非常强大的容器数据模块. 1.创建升级版的元组--namedtupe Python的元组(1,2,3)具有不可变性,但是单独的元组在无法满足现有需求时,可以使 ...
- java接口签名(Signature)实现方案续
一.前言 由于之前写过的一片文章 (java接口签名(Signature)实现方案 )收获了很多好评,此次来说一下另一种简单粗暴的签名方案.相对于之前的签名方案,对body.paramenter.pa ...