mysql中blob數(shù)據(jù)處理方式
具體代碼如下所示:
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 {
// 關(guān)閉連接
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("下載成功!");
}
}
總結(jié)
以上所述是小編給大家介紹的mysql中blob數(shù)據(jù)處理方式,希望對大家有所幫助,如果大家有任何疑問請給我留言,小編會(huì)及時(shí)回復(fù)大家的。在此也非常感謝大家對腳本之家網(wǎng)站的支持!
相關(guān)文章
mysql8 公用表表達(dá)式CTE的使用方法實(shí)例分析
這篇文章主要介紹了mysql8 公用表表達(dá)式CTE的使用方法,結(jié)合實(shí)例形式分析了mysql8 公用表表達(dá)式CTE的基本功能、原理使用方法及相關(guān)操作注意事項(xiàng),需要的朋友可以參考下2020-02-02
mysql 5.7.17 安裝教程 附MySQL服務(wù)無法啟動(dòng)的解決方法
這篇文章主要為大家詳細(xì)介紹了mysql 5.7.17安裝教程,并且為大家分享了MySQL服務(wù)無法啟動(dòng)的解決方法,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2017-03-03
MySQL忘記root密碼錯(cuò)誤號(hào)碼1045的解決辦法
這篇文章主要介紹了MySQL忘記root密碼錯(cuò)誤號(hào)碼1045的解決辦法,本文給大家介紹的非常詳細(xì),對大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下2020-08-08
ERROR: Error in Log_event::read_log_event()
ERROR: Error in Log_event::read_log_event(): read error, data_len: 438, event_type: 22014-02-02
MySQL報(bào)錯(cuò)1040'Too?many?connections'的原因以及解決方案
這篇文章主要給大家介紹了關(guān)于MySQL報(bào)錯(cuò)1040'Too?many?connections'的原因以及解決方案,文中通過實(shí)例代碼以及圖文介紹的非常詳細(xì),需要的朋友可以參考下2022-07-07
MySQL優(yōu)化之大字段longtext、text所生產(chǎn)的問題
本文主要介紹了MySQL優(yōu)化之大字段longtext、text所生產(chǎn)的問題,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧2023-05-05

