如何将大数据保存到 MySql 数据库
1. 什么是大数据
1. 所谓大数据, 就是大的字节数据,或大的字符数据.
2. 标准 SQL 中提供了如下类型来保存大数据类型:
- 字节数据类型:
tinyblob(256B), blob(64K), mediumblob(16M), longblob(4G)
- 字符数据类型:
tinyclob(256B), clob(64K), mediumclob(16M), longclob(4G)
3. MySql 中处理字符的数据类型名称与 SQL 标准不同:
- 字符数据类型:
tinytext(256B), text(64K), mediumtext(16M), longtext(4G)
// 示例: 把 mp3 保存到数据库中
// 需要在 MySql 配置文件中添加如下配置: `max_allowed_packet=10485760`
// 因为 MySql 默认不允许数据包传输过大
public class Demo{
// 将 mp3 文件保存到数据库中
public void fun1(){
// 获取连接对象
Connection con = JdbcUtils.getConnection();
// 提供 sql 模板, 获取 PreparedStatement 对象
String sql = "INSERT INTO tab_bin VALUES(?,?,?)";
PreparedStatement pstmt = con.prepareStatement(sql);
// 设置 sql 模板参数
pstmt.setInt(1,001);
pstmt.setString(2,"hello.mp3");
// mp3 保存为 blob 类型的数据
// 通过 commons-io 工具类, 将 mp3 转换成 byte[]
Byte[] bytes = IOUtils.toByteArray(new FileInputStream("/Users/姓名/Desktop/hello.mp3"));
// 使用 bytes, 创建 Blob 对象
Blob blob = new SerialBlob(bytes);
pstmt.setBlob(3,blob);
// 发送 sql 语句
pstmt.executeUpdate();
}
// 从数据库中获取 mp3 数据
public void fun2(){
// 获取连接对象
Connection con = JdbcUtils.getConnection();
// 获取 PreparedStatement 对象
String sql = "SELECT * FROM tab_bin";
PreparedStatement pstmt = con.prepareStatement(sql);
// 发送 sql 语句, 返回 ResultSet 对象
ResultSet rs = pstmt.executeQuery();
// 将 rs 中名为 data 列的数据
if(rs.next()){
Blob blob = rs.getBlob("data");
// 把 blob 转换成硬盘上的 mp3 文件
// 1. 通过 blob 得到输入流对象
// 2. 自己创建输出流对象
// 3. 把输入流的数据写入到输出流中
InputStream in = blob.getBinaryStream();
OutputStream out = new FileOutputStream("/Users/姓名/Document/world.mp3");
// 使用工具类中的方法
IOUtils.copy(in,out);
}
}
}
参考资料:
如何将大数据保存到 MySql 数据库的更多相关文章
- Python scrapy爬虫数据保存到MySQL数据库
除将爬取到的信息写入文件中之外,程序也可通过修改 Pipeline 文件将数据保存到数据库中.为了使用数据库来保存爬取到的信息,在 MySQL 的 python 数据库中执行如下 SQL 语句来创建 ...
- python之scrapy爬取数据保存到mysql数据库
1.创建工程 scrapy startproject tencent 2.创建项目 scrapy genspider mahuateng 3.既然保存到数据库,自然要安装pymsql pip inst ...
- 爬取网贷之家平台数据保存到mysql数据库
# coding utf-8 import requests import json import datetime import pymysql user_agent = 'User-Agent: ...
- node 爬虫 --- 将爬取到的数据,保存到 mysql 数据库中
步骤一:安装必要模块 (1)cheerio模块 ,一个类似jQuery的选择器模块,分析HTML利器. (2)request模块,让http请求变的更加简单 (3)mysql模块,node连接mysq ...
- php将图片以二进制保存到mysql数据库并显示
一.存储图片的数据表结构: -- -- 表的结构 `image` -- CREATE TABLE IF NOT EXISTS `image` ( `id` int(3) NOT NULL AUTO_I ...
- 将爬取的数据保存到mysql中
为了把数据保存到mysql费了很多周折,早上再来折腾,终于折腾好了 安装数据库 1.pip install pymysql(根据版本来装) 2.创建数据 打开终端 键入mysql -u root -p ...
- Python实现将图片以二进制格式保存到MySQL数据库中,以及取出:
创建数据库表格式: CREATE TABLE photo ( photo_no int(6) unsigned NOT NULL auto_increment, image MEDIUMBLOB, P ...
- 信息技术手册可视化进度报告 基于BeautifulSoup框架的python3爬取数据并连接保存到MySQL数据库
老师给我们提供了一个word文档,里面是一份信息行业热词解释手册,要求我们把里面的文字存进数据库里面,然后在前台展示出来. 首先面临的问题是怎么把数据导进MySQL数据库,大家都有自己的方法,我采用了 ...
- 使用官方组件下载图片,保存到MySQL数据库,保存到MongoDB数据库
需要学习的地方,使用官方组件下载图片的用法,保存item到MySQL数据库 需要提前创建好MySQL数据库,根据item.py文件中的字段信息创建相应的数据表 1.items.py文件 from sc ...
随机推荐
- 写入文件,创建xunlei批量任务
[php] <?php $arr = array(); $arr[] = 'http://s1.dwstatic.com/group1/M00/83/4A/834a040953745f52e8a ...
- dedecms上传图片相对路径改成绝对路径方法
很多朋友使用dedecms的时候都用了二级域名的功能,所以造成很多文章中图片不显示的问题. 解决方案如下: 1. 进入dede后台"系统"-"系统基本参数"-& ...
- 谈谈varnish,squid,apache,nginx缓存的对比
总是有人在问cache用什么,有varnish,squid,apache,nginx这几种,到底是我们用什么架构cache. 1.从这些功能上.varnish和squid是专业的cache服务,而ap ...
- java-MapDemo
Map数据结构的使用 package com.example; import java.util.HashMap; import java.util.Map; /** * MapDemo.java D ...
- python 属性 property、getattr()、setattr()详解
直奔主题 使用中文注释需要使用 #-*-coding:utf-8-*- property property在python中有2中使用property方法:1.@property @属性名称.sette ...
- Extjs中设置只读的样式问题
废话不多说,直接上代码: view.down('#imageFile').hide(); view.down('#save_button').hide(); view.show(); view.d ...
- HugePage简介和KVM中使用HugePage
现在,有许多的处理器架构都支持多种的内存页大小,其中就包括比一般的page size大很多的huge page.就目前来说,尽管在个人电脑中基本都实现了对huge page的支持,然而,huge pa ...
- mysql的binlog和slow_log慢日志
redo undo 锁 ----------------------------------------- 日志管理 log-error=/var/log/mysql.log 二进制日志的“总闸” 作 ...
- Response设置response header
total : #常见状态码:服务器处理请求的结果状态 200 : 表示请求处理完成并完美返回; 302 : 表示请求需要进一步细化; 404 : 表示客户访问资源Not Found; 500 : 表 ...
- TP3.2 引入微信类
首先建立一个入口IndexController.php文件 <?php namespace Home\Controller; use Think\Controller; use Com\Wech ...