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数据处理方式,希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。在此也非常感谢大家对毛票票网站的支持!