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) ------ 小数点位置固定的 ---> 数 ...
随机推荐
- jenkins原理
原理:Jenkins是一个开源软件项目,是基于Java开发的一种持续集成工具,用于监控持续重复的工作,旨在提供一个开放易用的软件平台,使软件的持续集成变成可能. 直白的说:这个jenkins是CI ...
- MongoDB 入门
1 MongoDb 简介 MongoDB是为互联网而生的数据库,是文档数据库. 1.1 优点: Schema-less,不需要预先定义表结构,同一个"表"中可以保存多个格式的数据: ...
- jquery轻量级数字动画插件jquery.countup.js
插件描述: jquery.countup.js 是一款轻量级jquery数字动画插件.该数字动画插件可以在页面滚动时,将指定的数字从0开始计数增加动画. 插件说明 jquery.countup.js ...
- [转] 对Array.prototype.slice.call()方法的理解
在看别人代码时,发现有这么个写法:[].slice.call(arguments, 0),这到底是什么意思呢? 1.基础 1)slice() 方法可从已有的数组中返回选定的元素. start:必需.规 ...
- groovy中的正则表达式操作符【groovy】
groovy中对于正则表达式的书写进行了简化,同时引入了新的操作符,使得正则表达式使用起来比较方便简单. 对于书写的改进: 比如 assert "\\d" == /\d/ 也就是在 ...
- shell判断文件是否为空
[[ `cat a.log |wc -l` -eq 0 ]] && echo "file is empty"
- Centos7创建CA和申请证书
转载:http://rackie386.blog.51cto.com/11279229/1947999 Centos7.3创建CA和申请证书 openssl 的配置文件:/etc/pki/tls/op ...
- 51Nod1336 RMQ逆问题 其他
原文链接https://www.cnblogs.com/zhouzhendong/p/51Nod1336.html 题目传送门 - 51Nod1336 题意 题解 我们将输入的一个区间的答案称为 V ...
- Linux安装Tomcat-Nginx-FastDFS-Redis-Solr-集群——【第十二集之FastDFS的使用】
(自己的项目路径)相关项目在web部分中priv.lirenhe.fastdfs 官方提供一个fastdfs开发项目,下载下来maven install 以下内容是借鉴网上的一篇文章,但是不知道网址了 ...
- responseHandler
resonsehandler 接受服务端传过来的数据,然后在这个函数里处理好要显示的数据在return个table显示 <!DOCTYPE html> <html lang=&quo ...