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) ------ 小数点位置固定的 ---> 数 ...
随机推荐
- jquery实现全选 反选 取消
<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8&quo ...
- Spring Boot配置大全
Spring Boot项目使用一个全局的配置文件application.properties或者是application.yml,在resources目录下或者类路径下的/config下,一般我们放到 ...
- MyBatis - 6.Spring整合MyBatis
1.查看不同MyBatis版本整合Spring时使用的适配包: http://www.mybatis.org/spring/ 2.下载整合适配包 https://github.com/mybatis/ ...
- 美国主机BlueHost vs HostEase
网站备案对于大部分个人站长而言,花费成本高.程序复杂,因此在挑选主机时,常选择免备案IDC服务商,如美国.香港主机,且前几日国内某免备案机房因个别网站涉及非法言论而配合相关部门采取停网整顿等,为此站长 ...
- C#获取一周的工作日显示(星期几)
代码如下: gridBandW1.Caption = System.Globalization.CultureInfo.CurrentCulture.DateTimeFormat.GetDayName ...
- Java基础知识➣序列化与反序列化(四)
概述 Java 提供了一种对象序列化的机制,该机制中,一个对象可以被表示为一个字节序列,该字节序列包括该对象的数据.有关对象的类型的信息和存储在对象中数据的类型. 将序列化对象写入文件之后,可以从文件 ...
- Android开发——使用Jword生成本地word文档
本文主要介绍如何使用Jword生成本地word文档,这里涉及到Jword的使用技巧,本文给出相应的代码,需要的朋友可以参考下. 为什么使用Jword呢?因为IText .Freemark在安卓平台上压 ...
- Vue小问题汇总
1.element-UI等组件更改默认样式: >>> https://vue-loader-v14.vuejs.org/zh-cn/features/scoped-css.html ...
- ionic2程序调试
新手一枚,之前一直做.net开发,最近接触Ionic2,也没有人带,只能自己一点点抠文档,查资料.一直苦于无法直接调试打包发不好的app,只能在代码里面加上alert一点一点的抛出要看信息,感觉就像瞎 ...
- Python_面向对象_类2
类的几个装饰器方法: @classmethod (类方法):使之无法访问实例变量 class Animal(object): def __init__(self, name): self.name = ...