zoukankan      html  css  js  c++  java
  • 如何将大数据保存到 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);
                }    
            }
        }
    

    参考资料:

  • 相关阅读:
    数据结构:图 (总结)
    排序算法总结(此篇文章是14年写作,代码难看,请看我新发表的排序总结)
    no identifier specified for entity错误
    哈夫曼编码算法思想总结
    线索二叉树
    ORACLE 错误 ora-01830 解决方法
    (转)web会话管理方式
    (转)C3P0配置
    分页技术()
    简易 DBUtil 封装
  • 原文地址:https://www.cnblogs.com/linkworld/p/7619974.html
Copyright © 2011-2022 走看看