服务器之家:专注于服务器技术及软件下载分享
分类导航

Mysql|

mysql中blob数据处理方式

2019-07-11 17:18徐茂盛 Mysql

本文通过实例代码给大家介绍了mysql中blob数据处理方式,非常不错,具有一定的参考借鉴价值,需要的朋友参考下吧

具体代码如下所示:

package epoint.mppdb_01.h3c;
import java.io.File;
import java.io.FileInputStream;
import java.io.FileOutputStream;
import java.io.InputStream;
import java.io.OutputStream;
import java.net.URI;
import java.sql.Blob;
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.ResultSet;
import java.sql.Statement;
import org.apache.commons.net.ftp.FTPClient;
import org.apache.commons.net.ftp.FTPReply;
import org.apache.hadoop.conf.Configuration;
import org.apache.hadoop.fs.FSDataInputStream;
import org.apache.hadoop.fs.FileSystem;
import org.apache.hadoop.fs.Path;
import org.apache.hadoop.io.IOUtils;
public class MySQLblobToMPPphoto {
  // MySQL连接
  public static Connection getMySQLConnection() throws Exception {
    String MySQLDRIVER = "com.mysql.jdbc.Driver";
    String MySQLURL = "jdbc:mysql://192.168.186.13:3306/bigdata_scene03_rktj";
    String MySQLUSERNAME = "root";
    String MySQLPASSWORD = "Gepoint";
    Connection MySQLconn = DriverManager.getConnection(MySQLURL, MySQLUSERNAME, MySQLPASSWORD);
    return MySQLconn;
  }
  // MPP连接
  public static Connection getMPPConnection() throws Exception {
    String MPPDRIVER = "com.MPP.jdbc.Driver";
    String MPPURL = "jdbc:MPP://192.168.186.14:5258/bigdata_scene03_rktj";
    String MPPUSERNAME = "mpp";
    String MPPPASSWORD = "h3c";
    Connection MPPconn = DriverManager.getConnection(MPPURL, MPPUSERNAME, MPPPASSWORD);
    return MPPconn;
  }
  //
  public static void getMySQLblobToHDFS() throws Exception {
    Connection conn = getMySQLConnection();
    ResultSet rs = null;
    try {
      String sql = "select ROW_ID,photo from t_rk_baseinfo_blob limit 10";
      Statement prest = conn.prepareStatement(sql);
      rs = prest.executeQuery(sql);
      while (rs.next()) {
        int row_id = rs.getInt(1);
        Blob photo = rs.getBlob(2);
        System.out.println(row_id + " " + photo);
        InputStream in = photo.getBinaryStream();
        OutputStream out = new FileOutputStream("H:/photo/" + row_id + ".jpg");
        int len = 0;
        byte[] buffer = new byte[1024];
        while ((len = in.read(buffer)) != -1) {
          out.write(buffer, 0, len);
        }
        upload("H:/photo/" + row_id + ".jpg");
      }
      prest.close();
      rs.close();
    } catch (Exception e) {
      e.printStackTrace();
    } finally {
      // 关闭连接
      if (conn != null) {
        try {
          conn.close();
          conn = null;
        } catch (Exception e) {
          e.printStackTrace();
        }
      }
    }
  }
  public static void main(String[] args) throws Exception {
    getMySQLblobToHDFS();
  }
  // HDFS附件上传
  public static void upload(String uploadpath) throws Exception {
    Configuration conf = new Configuration();
    URI uri = new URI("hdfs://192.168.186.14:8020");
    FileSystem fs = FileSystem.get(uri, conf, "HDFS");
    Path resP = new Path(uploadpath);
    Path destP = new Path("/photo");
    if (!fs.exists(destP)) {
      fs.mkdirs(destP);
    }
    fs.copyFromLocalFile(resP, destP);
    fs.close();
    System.out.println("***********************");
    System.out.println("上传成功!");
  }
  // HDFS附件下载
  public static void download() throws Exception {
    Configuration conf = new Configuration();
    String dest = "hdfs://192.168.186.14:/photo/11.png";
    String local = "D://11.png";
    FileSystem fs = FileSystem.get(URI.create(dest), conf, "hdfs");
    FSDataInputStream fsdi = fs.open(new Path(dest));
    OutputStream output = new FileOutputStream(local);
    IOUtils.copyBytes(fsdi, output, 4096, true);
    System.out.println("***********************");
    System.out.println("下载成功!");
  }
}

总结

以上所述是小编给大家介绍的mysql中blob数据处理方式,希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。在此也非常感谢大家对服务器之家网站的支持!

延伸 · 阅读

精彩推荐
  • MysqlMySQL 5.7并发复制隐式bug实例分析

    MySQL 5.7并发复制隐式bug实例分析

    这篇文章主要给大家介绍了关于MySQL 5.7并发复制隐式bug的相关资料,文中介绍的非常详细,对大家学习或者使用mysql5.7具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧...

    Rangle2672019-06-16
  • Mysqlmysql本地登录无法使用端口号登录的解决方法

    mysql本地登录无法使用端口号登录的解决方法

    这篇文章主要介绍了mysql本地登录无法使用端口号登录的解决方法,非常不错,具有一定的参考借鉴价值,需要的朋友可以参考下...

    wxc200620064822019-07-09
  • Mysql深入浅析MySQL 中 Identifier Case Sensitivity问题

    深入浅析MySQL 中 Identifier Case Sensitivity问题

    这篇文章主要介绍了MySQL 中 Identifier Case Sensitivity,需要的朋友可以参考下...

    潇湘隐者4082019-06-23
  • MysqlPHP定时备份MySQL与mysqldump语法参数详解

    PHP定时备份MySQL与mysqldump语法参数详解

    本文为大家介绍了PHP利用mysqldump命令定时备份MySQL与mysqldump语法参数大全以及定时备份的PHP实例代码...

    52PHP2792019-06-21
  • MysqlMysql查询表中最小可用id值的方法

    Mysql查询表中最小可用id值的方法

    这篇文章主要介绍了Mysql查询表中最小可用id值的方法,在文中通过sql语句给大家介绍了MySQL中删除id为最小的数据,需要的朋友可以参考下...

    dn961582019-06-19
  • MysqlMySQL子查询操作实例详解

    MySQL子查询操作实例详解

    这篇文章主要介绍了MySQL子查询操作,结合实例形式较为详细的分析了mysql表的创建、常见子查询运算与关键字使用技巧,需要的朋友可以参考下...

    程志伟1842019-07-07
  • MysqlMySQL数据库运维之数据恢复的方法

    MySQL数据库运维之数据恢复的方法

    本篇文章主要介绍了MySQL数据库运维之数据恢复的方法,此处总结一下恢复方案,并结合数据库的二进制日志做下数据恢复的示范。小编觉得挺不错的,现在分享给大家,也给大家做个参考。一起跟随小编过来看看吧...

    夏日寒冰4122019-07-08
  • MysqlMySQL临时表的简单用法介绍

    MySQL临时表的简单用法介绍

    这篇文章给大家简单介绍了MySQL临时表的简单用法,对此有需要的朋友可以跟着学习操作下。...

    奋斗吧_攻城狮1312019-07-08