• 使用JDBC处理MySQL大数据


    大数据也称之为LOB(Large Objects),LOB又分为:clob和blob

    clob字符型大型对象用于存储大文本,如历史档案、大部头著作等;blob二进制大型对象用于存储二进制数据,如程序、图象、影音等。

      对MySQL而言只有blob,而没有clob,mysql存储大文本采用的是Text,
      Text:TINYTEXT、TEXT、MEDIUMTEXT和LONGTEXT
      blob:TINYBLOB、BLOB、MEDIUMBLOB和LONGBLOB

    使用JDBC处理MySQL的大文本Text

      对于MySQL中的Text类型,可调用如下方法设置

     PreparedStatement.setCharacterStream(index, reader, length);//注意length长度须设置,并且设置为int型

    对MySQL中的Text类型,可调用如下方法获取

     Reader reader = resultSet. getCharacterStream(String columnLabel);

    string s = resultSet.getString(String columnLabel);

     

    例子:

                String contentStr ="";
                String content = "";
                if(rs.next()){
                    //使用resultSet.getString("字段名")获取大文本数据的内容
                    content = rs.getString("resume");
                    //使用resultSet.getCharacterStream("字段名")获取大文本数据的内容
                    Reader reader = rs.getCharacterStream("resume");
                    char buffer[] = new char[1024];
                    int len = 0;
                    FileWriter out = new FileWriter("D:\1.txt");
                    while((len=reader.read(buffer))>0){
                        contentStr += new String(buffer);
                        out.write(buffer, 0, len);
                    }
                    out.close();
                    reader.close();
                }

    使用JDBC处理MySQL的二进制数据blob

      对于MySQL中的BLOB类型,可调用如下方法设置:

     PreparedStatement.setBinaryStream(i, inputStream, length);

      对MySQL中的BLOB类型,可调用如下方法获取:

    InputStream in  = resultSet.getBinaryStream(String columnLabel);
    InputStream in  = resultSet.getBlob(String columnLabel).getBinaryStream(); 

    代码片段:

    if (rs.next()) {
                    //InputStream in = rs.getBlob("image").getBinaryStream();//这种方法也可以
                    InputStream in = rs.getBinaryStream("image");
                    int len = 0;
                    byte buffer[] = new byte[1024];
                    
                    FileOutputStream out = new FileOutputStream("D:\1.jpg");
                    while ((len = in.read(buffer)) > 0) {
                        out.write(buffer, 0, len);
                    }
                    in.close();
                    out.close();
                }

     参考链接:https://www.cnblogs.com/xdp-gacl/p/3982581.html

  • 相关阅读:
    RedMine 1.3.3 安装攻略
    .net 4.0 framework 安装时发生严重错误
    MYSQL安装配置
    接口隔离ISP
    依赖倒置DIP
    VS2010添加WP模板
    VS2012尝鲜
    OCP开放闭合
    单一职责
    里氏替换
  • 原文地址:https://www.cnblogs.com/huangdabing/p/9187064.html
Copyright © 2020-2023  润新知