亚洲韩日午夜视频,欧美日韩在线精品一区二区三区,韩国超清无码一区二区三区,亚洲国产成人影院播放,久草新在线,在线看片AV色

您好,歡迎來到思海網(wǎng)絡(luò),我們將竭誠為您提供優(yōu)質(zhì)的服務(wù)! 誠征網(wǎng)絡(luò)推廣 | 網(wǎng)站備案 | 幫助中心 | 軟件下載 | 購買流程 | 付款方式 | 聯(lián)系我們 [ 會員登錄/注冊 ]
促銷推廣
客服中心
業(yè)務(wù)咨詢
有事點擊這里…  531199185
有事點擊這里…  61352289
點擊這里給我發(fā)消息  81721488
有事點擊這里…  376585780
有事點擊這里…  872642803
有事點擊這里…  459248018
有事點擊這里…  61352288
有事點擊這里…  380791050
技術(shù)支持
有事點擊這里…  714236853
有事點擊這里…  719304487
有事點擊這里…  1208894568
有事點擊這里…  61352289
在線客服
有事點擊這里…  531199185
有事點擊這里…  61352288
有事點擊這里…  983054746
有事點擊這里…  893984210
當(dāng)前位置:首頁 >> 技術(shù)文章 >> 文章瀏覽
技術(shù)文章

如何利用Java進行MySql數(shù)據(jù)庫的導(dǎo)入和導(dǎo)出

添加時間:2012-6-25  添加: admin 

利用Java來進行Mysql數(shù)據(jù)庫的導(dǎo)入和導(dǎo)出的總體思想是通過Java來調(diào)用命令窗口執(zhí)行相應(yīng)的命令。

MySql導(dǎo)出數(shù)據(jù)庫的命令如下:

mysqldump -uusername -ppassword -hhost -Pport exportDatabaseName > exportPath 利用Java調(diào)用命令窗口執(zhí)行命令來進行MySql導(dǎo)入數(shù)據(jù)庫一般分三步走:

第一步:登錄Mysql數(shù)據(jù)庫,在登錄數(shù)據(jù)庫的時候也可以指定登錄到哪個數(shù)據(jù)庫,如果指定了則可以跳過第二步;

第二步:切換數(shù)據(jù)庫到需要導(dǎo)入的目標(biāo)數(shù)據(jù)庫

第三步:利用命令開始導(dǎo)入

在進行導(dǎo)出的時候,需要注意命令語句的運行環(huán)境,如果已經(jīng)將mysql安裝路徑下的bin加入到

系統(tǒng)的path變量中,那么在導(dǎo)出的時候可以直接使用命令語句,否則,就需要在執(zhí)行命令語句的

時候加上命令所在位置的路徑,即mysql安裝路徑想的bin下的mysqldump命令。

基本代碼如下:

import java.io.IOException;  import java.io.InputStream;  import java.io.OutputStream;  import java.io.OutputStreamWriter;  import java.util.Properties;   /**   * 在進行導(dǎo)出的時候,需要注意命令語句的運行環(huán)境,如果已經(jīng)將mysql安裝路徑下的bin加入到   * 系統(tǒng)的path變量中,那么在導(dǎo)出的時候可以直接使用命令語句,否則,就需要在執(zhí)行命令語句的   * 時候加上命令所在位置的路徑,即mysql安裝路徑想的bin下的mysqldump命令   * @author andy   *   */ public class MySqlImportAndExport {       public static void main(String args[]) throws IOException {          InputStream is = MySqlImportAndExport.class.getClassLoader().getResourceAsStream("jdbc.properties");          Properties properties = new Properties();          properties.load(is);  //      MySqlImportAndExport.export(properties);//這里簡單點異常我就直接往上拋          MySqlImportAndExport.importSql(properties);      }            /**       * 根據(jù)屬性文件的配置導(dǎo)出指定位置的指定數(shù)據(jù)庫到指定位置       * @param properties       * @throws IOException       */     public static void export(Properties properties) throws IOException {          Runtime runtime = Runtime.getRuntime();          String command = getExportCommand(properties);          runtime.exec(command);//這里簡單一點異常我就直接往上拋      }            /**       * 根據(jù)屬性文件的配置把指定位置的指定文件內(nèi)容導(dǎo)入到指定的數(shù)據(jù)庫中       * 在命令窗口進行mysql的數(shù)據(jù)庫導(dǎo)入一般分三步走:       * 第一步是登到到mysql; mysql -uusername -ppassword -hhost -Pport -DdatabaseName;如果在登錄的時候指定了數(shù)據(jù)庫名則會       * 直接轉(zhuǎn)向該數(shù)據(jù)庫,這樣就可以跳過第二步,直接第三步;        * 第二步是切換到導(dǎo)入的目標(biāo)數(shù)據(jù)庫;use importDatabaseName;       * 第三步是開始從目標(biāo)文件導(dǎo)入數(shù)據(jù)到目標(biāo)數(shù)據(jù)庫;source importPath;       * @param properties       * @throws IOException        */     public static void importSql(Properties properties) throws IOException {          Runtime runtime = Runtime.getRuntime();          //因為在命令窗口進行mysql數(shù)據(jù)庫的導(dǎo)入一般分三步走,所以所執(zhí)行的命令將以字符串?dāng)?shù)組的形式出現(xiàn)          String cmdarray[] = getImportCommand(properties);//根據(jù)屬性文件的配置獲取數(shù)據(jù)庫導(dǎo)入所需的命令,組成一個數(shù)組          //runtime.exec(cmdarray);//這里也是簡單的直接拋出異常          Process process = runtime.exec(cmdarray[0]);          //執(zhí)行了第一條命令以后已經(jīng)登錄到mysql了,所以之后就是利用mysql的命令窗口          //進程執(zhí)行后面的代碼          OutputStream os = process.getOutputStream();          OutputStreamWriter writer = new OutputStreamWriter(os);          //命令1和命令2要放在一起執(zhí)行          writer.write(cmdarray[1] + "\r\n" + cmdarray[2]);          writer.flush();          writer.close();          os.close();      }            /**       * 利用屬性文件提供的配置來拼裝命令語句       * 在拼裝命令語句的時候有一點是需要注意的:一般我們在命令窗口直接使用命令來       * 進行導(dǎo)出的時候可以簡單使用“>”來表示導(dǎo)出到什么地方,即mysqldump -uusername -ppassword databaseName > exportPath,       * 但在Java中這樣寫是不行的,它需要你用-r明確的指出導(dǎo)出到什么地方,如:       * mysqldump -uusername -ppassword databaseName -r exportPath。       * @param properties       * @return       */     private static String getExportCommand(Properties properties) {          StringBuffer command = new StringBuffer();          String username = properties.getProperty("jdbc.username");//用戶名          String password = properties.getProperty("jdbc.password");//用戶密碼          String exportDatabaseName = properties.getProperty("jdbc.exportDatabaseName");//需要導(dǎo)出的數(shù)據(jù)庫名          String host = properties.getProperty("jdbc.host");//從哪個主機導(dǎo)出數(shù)據(jù)庫,如果沒有指定這個值,則默認(rèn)取localhost          String port = properties.getProperty("jdbc.port");//使用的端口號          String exportPath = properties.getProperty("jdbc.exportPath");//導(dǎo)出路徑                    //注意哪些地方要空格,哪些不要空格          command.append("mysqldump -u").append(username).append(" -p").append(password)//密碼是用的小p,而端口是用的大P。          .append(" -h").append(host).append(" -P").append(port).append(" ").append(exportDatabaseName).append(" -r ").append(exportPath);          return command.toString();      }            /**       * 根據(jù)屬性文件的配置,分三步走獲取從目標(biāo)文件導(dǎo)入數(shù)據(jù)到目標(biāo)數(shù)據(jù)庫所需的命令       * 如果在登錄的時候指定了數(shù)據(jù)庫名則會       * 直接轉(zhuǎn)向該數(shù)據(jù)庫,這樣就可以跳過第二步,直接第三步;        * @param properties       * @return       */     private static String[] getImportCommand(Properties properties) {          String username = properties.getProperty("jdbc.username");//用戶名          String password = properties.getProperty("jdbc.password");//密碼          String host = properties.getProperty("jdbc.host");//導(dǎo)入的目標(biāo)數(shù)據(jù)庫所在的主機          String port = properties.getProperty("jdbc.port");//使用的端口號          String importDatabaseName = properties.getProperty("jdbc.importDatabaseName");//導(dǎo)入的目標(biāo)數(shù)據(jù)庫的名稱          String importPath = properties.getProperty("jdbc.importPath");//導(dǎo)入的目標(biāo)文件所在的位置          //第一步,獲取登錄命令語句          String loginCommand = new StringBuffer().append("mysql -u").append(username).append(" -p").append(password).append(" -h").append(host)          .append(" -P").append(port).toString();          //第二步,獲取切換數(shù)據(jù)庫到目標(biāo)數(shù)據(jù)庫的命令語句          String switchCommand = new StringBuffer("use ").append(importDatabaseName).toString();          //第三步,獲取導(dǎo)入的命令語句          String importCommand = new StringBuffer("source ").append(importPath).toString();          //需要返回的命令語句數(shù)組          String[] commands = new String[] {loginCommand, switchCommand, importCommand};          return commands;      }        } 上述使用的jdbc.properties文件

jdbc.username=root  jdbc.password=password jdbc.host=localhost  jdbc.port=3306  jdbc.exportDatabaseName=dbName  jdbc.exportPath=d\:\\dbName.sql  jdbc.importDatabaseName=test  jdbc.importPath=d\:\\dbName.sql

關(guān)鍵字:Java、MySql數(shù)據(jù)庫、導(dǎo)入和導(dǎo)出

分享到:

頂部 】 【 關(guān)閉
版權(quán)所有:佛山思海電腦網(wǎng)絡(luò)有限公司 ©1998-2024 All Rights Reserved.
聯(lián)系電話:(0757)22630313、22633833
中華人民共和國增值電信業(yè)務(wù)經(jīng)營許可證: 粵B1.B2-20030321 備案號:粵B2-20030321-1
網(wǎng)站公安備案編號:44060602000007 交互式欄目專項備案編號:200303DD003  
察察 工商 網(wǎng)安 舉報有獎  警警  手機打開網(wǎng)站