java 執行 shell腳本通過mysql load data導入數據


1:load_data_test.sh

#!/bin/sh

file=$1

load_data_log=/mnt/load_data_test/load.log

load_sql="LOAD DATA LOCAL INFILE '/mnt/load_data_test/${file}' 
IGNORE INTO TABLE t_test
CHARACTER SET utf8 
FIELDS TERMINATED BY ','
    OPTIONALLY ENCLOSED BY ''
LINES TERMINATED BY '\r\n'"

mysql 2>>${load_data_log} -uroot -pxxx --local-infile=1  << EOF

use app_info;

$load_sql;

exit

EOF

echo "$?"

exit

備注:$?如果為1表示腳本執行出錯,為0表示腳本執行成功。

2:java代碼

    public static void main(String[] args) {

        String sh = System.getProperty("shell");
        
        try{
            Runtime rt = Runtime.getRuntime();
            Process proc = rt.exec(sh,null,null);
            
            InputStream stderr =  proc.getInputStream();
            InputStreamReader isr = new InputStreamReader(stderr,"UTF-8");
            BufferedReader br = new BufferedReader(isr);
            
            String line;
            while ((line = br.readLine()) != null) {
                System.out.println("執行結果:"+line);
            }
        }catch (Exception e){
            e.printStackTrace();
        }

        
    }

3:測試

# java -Dshell='/mnt/load_data_test/load_data_test.sh 00.txt' -jar t03.jar
執行結果:0

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM