玩转MySQL -----处理大数据对象

一、大数据对象简介

 1.LOB(Large Object,大型对象)类型的字段现在用得越来越多了。因为这种类型的字段,容量大(最多能容纳4GB的数据),且一个表中可以有多个这种类型的字段,很灵活,适用于数据量非常大的业务领域(如图象、档案等)。
 2.LOB类型分为BLOBCLOB两种:BLOB即二进制大型对象(Binary Large Object),适用于存贮非文本的字节流数据(如程序、图象、影音等)。
 3.而CLOB,即字符型大型对象(Character Large Object),则与字符集相关,适于存贮文本型的数据(如历史档案、大部头著作等)。
 4. 四种类型的最大长度:  tinyBlob:255, Blob:65k,  MediumBlob:16M, LongBlob:4G   text也是这4种类型,长度类似

create table note(

id int,

note text;  

)

字段定义成 "note varchar(100000)" 时,数据库自动会把它转成 MediumText类型

 CREATE TABLE img(

id INT,

img BLOB  //MEDIUMBLOB

);

 

凡是要写入大数据字段,都只能使用PreparedStatement, 不能使用Statement。

读取大数据字段是可以用Statement的。

实例如下:

CLOB:

1.写入"文本大数据"字段

InputStream in = new FileInputStream(file);

文本大数据字段的数据封装: pst.setAsciiStream(i, in)

public class JDBCLobDemo {@Test// 写入"文本大数据"字段public void saveCLob() throws Exception {Connection conn = ConnUtils.getConn();String sql = "insert into note values(?,?)";PreparedStatement pst = conn.prepareStatement(sql);pst.setInt(1, 2);// 文本大数据字段的数据封装: pst.setAsciiStream(i, in)File file = new File("./src/cn/hncu/jdbc/JDBCDemo2.java");InputStream in = new FileInputStream(file);pst.setAsciiStream(2, in);pst.executeUpdate();conn.close();}

2.读取"文本大数据"字段
            InputStream in = rs.getAsciiStream(2); // rs.getAsciiStream("note")
            BufferedReader bf = new BufferedReader(new InputStreamReader(in));
            String str = null;
            while ((str = bf.readLine()) != null) {
                System.out.println(str);
            }

@Test// 读取"文本大数据"字段public void readCLob() throws Exception {Connection conn = ConnUtils.getConn();String sql = "select * from note";// PreparedStatement pst=conn.prepareStatement(sql);Statement st = conn.createStatement();ResultSet rs = st.executeQuery(sql);while (rs.next()) {int id = rs.getInt("id");System.out.println("id:" + id);// 大文本数据字段的读取InputStream in = rs.getAsciiStream(2); // rs.getAsciiStream("note")BufferedReader bf = new BufferedReader(new InputStreamReader(in));String str = null;while ((str = bf.readLine()) != null) {System.out.println(str);}bf.close();}conn.close();}

BLOB类型---二进制大数据字段---声音、图像、视频等

  3 写入"二进制大数据"字段

  文本大数据字段的数据封装:    pst.setBinaryStream(i, in)

   InputStream in=new FileInputStream(f);

   pst.setBinaryStream(2, in);

@Test// 写入"二进制大数据"字段public void saveBLob() throws Exception {Connection conn = ConnUtils.getConn();String sql = "insert into note values(?,?)";PreparedStatement pst = conn.prepareStatement(sql);//文本大数据字段的数据封装:	pst.setBinaryStream(i, in)File f = new File("d:/a/11.jpg");pst.setInt(1, 1);InputStream in=new FileInputStream(f);pst.setBinaryStream(2, in);pst.executeUpdate();conn.close();}

4.读取"二进制大数据"字段
            InputStream in=rs.getBinaryStream(2);
            //自己用底层io技术把in中的数据存成一个独立文件
            byte b[]=new byte[1024];
            int len=0;
            OutputStream out=new FileOutputStream("d:/a/abc.jpg");
            while((len=in.read(b))!=-1){
                out.write(b, 0, len);
            }

	@Test//读取"二进制大数据"字段public void readBLob() throws Exception{Connection conn = ConnUtils.getConn();String sql = "select * from img";Statement st = conn.createStatement();ResultSet rs = st.executeQuery(sql);while (rs.next()) {int id = rs.getInt("id");System.out.println("id:"+id);//二进制大数据字段的读取InputStream in=rs.getBinaryStream(2);//自己用底层io技术把in中的数据存成一个独立文件byte b[]=new byte[1024];int len=0;OutputStream out=new FileOutputStream("d:/a/abc.jpg");while((len=in.read(b))!=-1){out.write(b, 0, len);}in.close();out.close();}conn.close();}

CLOB结果:

 

 

 

 

 

 

 

 

 

 

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.rhkb.cn/news/35853.html

如若内容造成侵权/违法违规/事实不符,请联系长河编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

http 转 https 操作步骤

http 转https 花了很多的时间,走了很多的网弯路,最后还是弄好了 步骤: 第一步: 进入阿里云账号,进入 控制台 -》 安全(云盾) -》 CA证书服务 -》 购买证书 -》 注意:这里选项的时候…

python数据类型转换

Python数据类型转换 Python数据类型之间的转换 函数描述 int(x [,base]) 将x转换为一个整数 long(x [,base] ) 将x转换为一个长整数 float(x) 将x转换到一个浮点数 complex(real [,imag]) 创建一个复数 str(x) 将对象 x 转换为字符串 repr(x) 将对象 x 转换为表达式…

搭建frida+木木模拟器运行环境

目录 pip安装frida安装木木模拟器开启模拟器的root权限打开模拟器USB调试安装RE文件管理器 下载frida服务端-Android下载frida-server文件移动文件到tmp下 使用adb连接mumu模拟器设置frida-server权限并启动查看是否启动成功 使用python调用 pip安装frida 本机环境win10 (AMD6…

利用ChatGPT 5分钟制作一份思维导图

一、利用ChatGPT列出思维导图大纲 二、利用ChatGPT继续将大纲转化为markdown语法 三、将上面内容复制到txt文档中保存 四、修改文件名后缀为md 五、将生成的md文件导入到xmind中 打开xmind软件,通过「文件→导入→markdown」,选择我们刚刚创建的文件导入…

音视频技术开发周刊 | 302

每周一期,纵览音视频技术领域的干货。 新闻投稿:contributelivevideostack.com。 ChatGPT神器Code Interpreter终于开放,到底怎么用?这里有一份保姆级教程 Code Interpreter 已经正式开放。 上海世界AI大会:MidJourney…

Window之系统开机Administrator账户被停用

在我们的Win7系统开机时如果没有设置其他账户,并且我们的Administrator账户被停用怎么进入Win7系统呢? 解决方法: 重启电脑后按F8进入安全模式, 右键点击“我的电脑” -- “管理” -- “本地用户和组” -- “用户” -- 右键“Ad…

Spug“账户已被系统禁用”的解决办法

前置文章: Spug发布前端项目实战全过程https://blog.csdn.net/wdy_2099/article/details/120215392 Spug设置报警提醒功能(钉钉、微信、邮箱)落地详细https://blog.csdn.net/wdy_2099/article/details/120224867 问题:未知原因导…

桌面计算机安全禁用账户,Win10电脑提示“你的账户已被停用,请向系统管理员咨询”的解决教程...

有用户在安装 解决方法一: 1、此情况可以长按电源键强制关机再开机看到WIN10登陆界面时再次长按电源键强制关机,如此三次后再开机会看到“查看高级修复选项”的按钮,点此按钮会进入WINRE环境,选择“疑难解答”; 2、选择“高级选项”; 3、选择…

【转】您的账户已被停用,请向系统管理员咨询解决办法

升级win10后发现开机时进入安全模式长按F8已经没用了,其实win10中把安全模式放入了系统修复模块,下面就来介绍下win10如何进入安全模式。 进入下边这个界面可通过按住 SHIFT 点击重启即可 工具/原料 win10 方法/步骤 打开“开始”菜单,找到里…

您的账户已被停用,请向系统管理员咨询 解决方案(亲测有效)

当你的电脑误操作了以下步骤,或者被篡改了设置了这里 那恭喜你,重启后就登不上Administrator账户了 首先看一下网上的三种无效方式 无效方式一:安全模式进入用户和组 一般两种方式进入安全模式: 方式一:F8进入 方式二:按住shift 重启 (1)选中其中的安全模式,在安全…

国庆节文字摘抄好词好句好段怎么写?用便签记录就可以

一般来说,在国庆节有不少学生都有一项这样的作业,这就是写国庆节文字摘抄,例如一些关于国庆节的好词好句好段,这不仅可以帮助我们积累一些知识,也可以让我们在以后的日常生活、写作文中使用到。那么国庆节文字照抄怎么…

我一直都以为摘录好词好句是一个好…

我一直都以为摘录好词好句是一个好习惯,以前我看到一些好词好句我就会把它们抄写到笔记本上,把它们背熟,然后到了写文章时就滴字不漏地照搬进去。直到现在我才明白,原来这是一个坏习惯,说是摘录,其实是抄袭…

关注CSDN社区微信,更多精彩等你来

CSDN社区微信公众号“程序人生”(微信ID:coder_life)来了,每天我们会将CSDN社区中大量的优质内容浓缩成1~3篇文章,推送到您的手机中,让您无论何时何地都能感受到知识的精彩、技术的力量。 扫描二维码关注&a…

常用值得收藏的网站/软件 持续更新中

学识决定眼界,眼界决定格局,格局决定人生。 文章目录 一、查询与资源类二、教育与学习类三、代码与资源类四、办工类五、技术与知识面类六、交流与分享类七、其他 这些年经常用的网站,觉得非常实用。与大家分享分享,独乐乐不如众乐…

1.Postman之发送get请求

Postman之发送get请求 1.创建一个集合 2.在集合中创建一个请求 3.GET请求获取北京今天天气: (1)天气API接口文档:http://doc.tianqiapi.com/603579 (2)请求API接口:http://www.tianqiapi.co…

关于PostMan发送请求获得响应

关于PostMan发送请求 在PostMan里面设置引用全局变量(环境变量和集合变量不常用) 附上官网变量设置:https://learning.postman.com/docs/writing-scripts/script-references/postman-sandbox-api-reference/#writing-test-assertions 1、点…

post请求变成了get请求,是怎么回事?

答案:**请求协议错了 ,请检查协议。**如果心急的就不用往下看了——特指jmeter接口请求 详解: 测试中有时要把用域名访问的接口,切换为用IP访问,这时,往往请求结果会出现Java报错,而且请求中 …

post请求,参数过长导致请求400

背景 近期参与项目,有一个功能在线标注非结构化数据,并把标注内容保存在后台,功能如下: 意外就这样不出意外的出现了,保存请求400 排查 第一阶段 参数key没有对应上吗?事与愿违,如果这么…

【无标题】gpt的明年

编辑:桃子 好困 【导读】苹果MAX力加满了!爆料称,苹果正秘密研发测试Apple GPT,Siri即将大升级,预计2024年推出。 「置身事外」的苹果,终于要放大招了。 彭博称,苹果正在暗中开发测试人工智能…