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) ------ 小数点位置固定的 ---> 数 ...
随机推荐
- c++实现 给定直角停车位两个点,求取剩余两点坐标。
//2018-09-08-fourmi /*************************include head files************************************ ...
- bootstrap 三个文件的引入
<!-- 新 Bootstrap 核心 CSS 文件 --> <link rel="stylesheet" href="//cdn.bootcss.co ...
- hive表中字段显示为NULL时,HDFS文件中存储为\N
hive数据落地到hdfs,null会默认用'\N'存储 解决方式1:利用命令(这个我没起效果) alter table adl_cici_test_fdt set serdeproperties(' ...
- 五.hadoop 从mysql中读取数据写到hdfs
目录: 目录见文章1 本文是基于windows下来操作,linux下,mysql-connector-java-5.1.46.jar包的放置有讲究. mr程序 import java.io.DataI ...
- Stuck on "Authenticating with iTunes Store"
https://forums.developer.apple.com/thread/76803 Try this, it fixed it for me. Open Terminal and run: ...
- 我的第一个Java程序和Java简介
public calss HelloWorld{ public static void main(String[] args){ System.out.println("Hello Worl ...
- openmp查看最大线程数量
CMakeLists.txt cmake_minimum_required(VERSION 2.8) project(omp_test) find_package(OpenMP REQUIRED) i ...
- Choosing web framework: ASP.NET MVC vs Django Python vs Ruby on Rails(转载)
来源:http://podlipensky.com/2012/06/choosing-web-framework-asp-net-mvc-vs-django-python-vs-ruby-on-rai ...
- jQuery中的extend()方法
通常我们使用jquery的extend时,大都是为了实现默认字段的覆盖,即若传入某个字段的值,则使用传入值,否则使用默认值.如下面的代码: function getOpt(option){ var _ ...
- [转] Webpack的devtool和source maps
source maps Webpack打包生成的.map后缀文件,使得我们的开发调试更加方便,它能帮助我们链接到断点对应的源代码的位置进行调试(//# souceURL),而devtool就是用来指定 ...