mysql中blob数据处理方式
具体代码如下所示:
packageepoint.mppdb_01.h3c; importjava.io.File; importjava.io.FileInputStream; importjava.io.FileOutputStream; importjava.io.InputStream; importjava.io.OutputStream; importjava.net.URI; importjava.sql.Blob; importjava.sql.Connection; importjava.sql.DriverManager; importjava.sql.ResultSet; importjava.sql.Statement; importorg.apache.commons.net.ftp.FTPClient; importorg.apache.commons.net.ftp.FTPReply; importorg.apache.hadoop.conf.Configuration; importorg.apache.hadoop.fs.FSDataInputStream; importorg.apache.hadoop.fs.FileSystem; importorg.apache.hadoop.fs.Path; importorg.apache.hadoop.io.IOUtils; publicclassMySQLblobToMPPphoto{ //MySQL连接 publicstaticConnectiongetMySQLConnection()throwsException{ StringMySQLDRIVER="com.mysql.jdbc.Driver"; StringMySQLURL="jdbc:mysql://192.168.186.13:3306/bigdata_scene03_rktj"; StringMySQLUSERNAME="root"; StringMySQLPASSWORD="Gepoint"; ConnectionMySQLconn=DriverManager.getConnection(MySQLURL,MySQLUSERNAME,MySQLPASSWORD); returnMySQLconn; } //MPP连接 publicstaticConnectiongetMPPConnection()throwsException{ StringMPPDRIVER="com.MPP.jdbc.Driver"; StringMPPURL="jdbc:MPP://192.168.186.14:5258/bigdata_scene03_rktj"; StringMPPUSERNAME="mpp"; StringMPPPASSWORD="h3c"; ConnectionMPPconn=DriverManager.getConnection(MPPURL,MPPUSERNAME,MPPPASSWORD); returnMPPconn; } // publicstaticvoidgetMySQLblobToHDFS()throwsException{ Connectionconn=getMySQLConnection(); ResultSetrs=null; try{ Stringsql="selectROW_ID,photofromt_rk_baseinfo_bloblimit10"; Statementprest=conn.prepareStatement(sql); rs=prest.executeQuery(sql); while(rs.next()){ introw_id=rs.getInt(1); Blobphoto=rs.getBlob(2); System.out.println(row_id+""+photo); InputStreamin=photo.getBinaryStream(); OutputStreamout=newFileOutputStream("H:/photo/"+row_id+".jpg"); intlen=0; byte[]buffer=newbyte[1024]; while((len=in.read(buffer))!=-1){ out.write(buffer,0,len); } upload("H:/photo/"+row_id+".jpg"); } prest.close(); rs.close(); }catch(Exceptione){ e.printStackTrace(); }finally{ //关闭连接 if(conn!=null){ try{ conn.close(); conn=null; }catch(Exceptione){ e.printStackTrace(); } } } } publicstaticvoidmain(String[]args)throwsException{ getMySQLblobToHDFS(); } //HDFS附件上传 publicstaticvoidupload(Stringuploadpath)throwsException{ Configurationconf=newConfiguration(); URIuri=newURI("hdfs://192.168.186.14:8020"); FileSystemfs=FileSystem.get(uri,conf,"HDFS"); PathresP=newPath(uploadpath); PathdestP=newPath("/photo"); if(!fs.exists(destP)){ fs.mkdirs(destP); } fs.copyFromLocalFile(resP,destP); fs.close(); System.out.println("***********************"); System.out.println("上传成功!"); } //HDFS附件下载 publicstaticvoiddownload()throwsException{ Configurationconf=newConfiguration(); Stringdest="hdfs://192.168.186.14:/photo/11.png"; Stringlocal="D://11.png"; FileSystemfs=FileSystem.get(URI.create(dest),conf,"hdfs"); FSDataInputStreamfsdi=fs.open(newPath(dest)); OutputStreamoutput=newFileOutputStream(local); IOUtils.copyBytes(fsdi,output,4096,true); System.out.println("***********************"); System.out.println("下载成功!"); } }
总结
以上所述是小编给大家介绍的mysql中blob数据处理方式,希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。在此也非常感谢大家对毛票票网站的支持!