在数据库中,有一条一条的记录,记录中很多字段都是几个字符就够的,假如现在要把一部小说存入数据库,这本小说当然不是几个字符组成,而是由几万字组成,这本小说的数据我们就可以说是大数据,生活中当然有各种各样的大数据:电影,音乐,图片等等。。。
大字符内容:通常是指很长的字符类型的文件,例如小说,故事等等,内容有字符组成。
下面说明一下MySQL与Oracle中的大数据类型
数据种类 | 数据大小 | MySQL | Oracle |
字符 | 小 | char,varchar | varchar2 |
大 | text/longtext | clob | |
字节 | 大 | bit,blob,longblob | blob |
@Test public void writeInDB() throws Exception { //获取连接 connection = sqlUtil.getconnection(); //获取对象 PreparedStatement preparedStatement = connection.prepareStatement("insert into book values(?)"); //准备一个Reader用于读取本地文件 Reader reader = new FileReader(new File("e:/test.txt")); //设置大数据参数 preparedStatement.setClob(1, reader); //执行SQL语句 preparedStatement.executeUpdate(); //关闭资源 reader.close(); sqlUtil.close(preparedStatement, connection); }
@Test public void readFromDB() throws Exception { //获取连接 connection = sqlUtil.getconnection(); //创建对象 PreparedStatement preparedStatement = connection.prepareStatement("SELECT content FROM book"); //设置参数//preparedStatement.setObject(1, "book");//获得结果 ResultSet res = preparedStatement.executeQuery(); //以String的形式获得大字符内容 while(res.next()) { String content = res.getString("content"); System.out.println(content); } //关闭资源 sqlUtil.close(preparedStatement, connection); }
获得结果后还有第二种方法:
@Test public void readFromDB() throws Exception { //获取连接 connection = sqlUtil.getconnection(); //创建对象 PreparedStatement preparedStatement = connection.prepareStatement("SELECT content FROM book"); //设置参数//preparedStatement.setObject(1, "book");//获得结果 ResultSet res = preparedStatement.executeQuery(); FileWriter fileWriter = new FileWriter(new File("d:/11021.txt")); //利用Clob对象 if(res.next()) { Clob clob = res.getClob("content"); Reader reader = clob.getCharacterStream(); //然后把Reader写入到本地文件中 char[] cr = new char[1024]; int len = 0; while((len = reader.read(cr))!=-1) { fileWriter.write(cr, 0, len); } reader.close(); } //关闭资源 fileWriter.close(); sqlUtil.close(preparedStatement, connection); }
以上就是对大字符文件的读入与写出~下面我们示范来对大字节文件的操作~
@Test public void writeInDB() throws Exception { //获取连接 connection = sqlUtil.getconnection(); //获取对象 PreparedStatement preparedStatement = connection.prepareStatement("insert into book values(?,?)"); //准备一个InputStream用于读取本地文件 InputStream in = new FileInputStream(new File("f:/computer.jpg")); //设置大数据参数 preparedStatement.setObject(1, 1); preparedStatement.setBlob(2, in); //也可以使用这个//preparedStatement.setBinaryStream(2, in);//执行SQL语句 preparedStatement.executeUpdate(); //关闭资源 in.close(); sqlUtil.close(preparedStatement, connection); }
@Test public void readFromDB() throws Exception { //获取连接 connection = sqlUtil.getconnection(); //创建对象 PreparedStatement preparedStatement = connection.prepareStatement("SELECT content FROM book where id=?"); //设置参数 preparedStatement.setInt(1, 1); //获得结果 ResultSet res = preparedStatement.executeQuery(); FileOutputStream out = new FileOutputStream(new File("d:/999.jpg")); //利用Blob对象 if(res.next()) { //Blob blob = res.getBlob("content");//InputStream in = blob.getBinaryStream();//这样也行 InputStream in = res.getBinaryStream("content"); //然后把Reader写入到本地文件中 byte[] buf = new byte[1024]; int len = 0; while((len = in.read(buf))!=-1) { out.write(buf, 0, len); } in.close(); out.close(); } //关闭资源 sqlUtil.close(preparedStatement, connection); }
数据分析咨询请扫描二维码
若不方便扫码,搜微信号:CDAshujufenxi
作者:CDA持证人 余治国 一般各平台出薪资报告,都会哀嚎遍野。举个例子,去年某招聘平台发布《中国女性职场现状调查报告》, ...
2025-02-02真正的数据分析大神是什么样的呢?有人认为他们能轻松驾驭各种分析工具,能够从海量数据中找到潜在关联,或者一眼识别报告中的数 ...
2025-02-01现今社会,“转行”似乎成无数职场人无法回避的话题。但行业就像座围城:外行人看光鲜,内行人看心酸。数据分析这个行业,近几年 ...
2025-01-31本人基本情况: 学校及专业:厦门大学经济学院应用统计 实习经历:快手数据分析、字节数据分析、百度数据分析 Offer情况:北京 ...
2025-01-3001专家简介 徐杨老师,CDA数据科学研究院教研副总监,主要负责CDA认证项目以及机器学习/人工智能类课程的研发与授课,负责过中 ...
2025-01-29持证人简介 郭畅,CDA数据分析师二级持证人,安徽大学毕业,目前就职于徽商银行总行大数据部,两年工作经验,主要参与两项跨部 ...
2025-01-282025年刚开启,知乎上就出现了一个热帖: 2024年突然出现的经济下行,使各行各业都感觉到压力山大。有人说,大环境越来越不好了 ...
2025-01-27在数据分析的世界里,“对比”是一种简单且有效的方法。这就像两个女孩子穿同一款式的衣服,效果不一样。 很多人都听过“货比三 ...
2025-01-26数据指标体系 “数据为王”相信大家都听说过。当前,数据信息不再仅仅是传递的媒介,它成为了驱动经济发展的新燃料。对于企业而 ...
2025-01-26在职场中,当你遇到问题的时候,如果感到无从下手,或者抓不到重点,可能是因为你掌握的思维模型不够多。 一个好用的思维模型, ...
2025-01-25俗话说的好“文不如表,表不如图”,图的信息传达效率很高,是数据汇报、数据展示的重要手段。好的数据展示不仅需要有图,还要选 ...
2025-01-24数据分析报告至关重要 一份高质量的数据分析报告不仅能够揭示数据背后的真相,还能为企业决策者提供有价值的洞察和建议。 年薪70 ...
2025-01-24又到一年年终时,各位打工人也迎来了展示成果的关键时刻 —— 年终述职。一份出色的年终述职报告,不仅能全面呈现你的工作价值, ...
2025-01-23“用户旅程分析”概念 用户旅程图又叫做用户体验地图,它是用于描述用户在与产品或服务互动的过程中所经历的各个阶段、触点和情 ...
2025-01-22在竞争激烈的商业世界中,竞品分析对于企业的发展至关重要。今天,我们就来详细聊聊数据分析师写竞品分析的那些事儿。 一、明确 ...
2025-01-22在数据分析领域,Excel作为一种普及率极高且功能强大的工具,无疑为无数专业人士提供了便捷的解决方案。尽管Excel自带了丰富的功 ...
2025-01-17在这个瞬息万变的时代,许多人都在寻找能让他们脱颖而出的职业。而数据分析师,作为大数据和人工智能时代的热门职业,自然吸引了 ...
2025-01-14Python作为一门功能强大的编程语言,已经成为数据分析和可视化领域的重要工具。无论你是数据分析的新手,还是经验丰富的专业人士 ...
2025-01-10完全靠数据决策,真的靠谱吗? 最近几年,“数据驱动”成了商界最火的关键词之一,但靠数据就能走天下?其实不然!那些真正成功 ...
2025-01-09SparkSQL 结构化数据处理流程及原理是什么?Spark SQL 可以使用现有的Hive元存储、SerDes 和 UDF。它可以使用 JDBC/ODB ...
2025-01-09