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

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

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

添加時(shí)間:2012-6-25  添加: admin 

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

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

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

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

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

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

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

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

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

基本代碼如下:

import java.io.IOException;  import java.io.InputStream;  import java.io.OutputStream;  import java.io.OutputStreamWriter;  import java.util.Properties;   /**   * 在進(jìn)行導(dǎo)出的時(shí)候,需要注意命令語(yǔ)句的運(yùn)行環(huán)境,如果已經(jīng)將mysql安裝路徑下的bin加入到   * 系統(tǒng)的path變量中,那么在導(dǎo)出的時(shí)候可以直接使用命令語(yǔ)句,否則,就需要在執(zhí)行命令語(yǔ)句的   * 時(shí)候加上命令所在位置的路徑,即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);//這里簡(jiǎn)單點(diǎn)異常我就直接往上拋          MySqlImportAndExport.importSql(properties);      }            /**       * 根據(jù)屬性文件的配置導(dǎo)出指定位置的指定數(shù)據(jù)庫(kù)到指定位置       * @param properties       * @throws IOException       */     public static void export(Properties properties) throws IOException {          Runtime runtime = Runtime.getRuntime();          String command = getExportCommand(properties);          runtime.exec(command);//這里簡(jiǎn)單一點(diǎn)異常我就直接往上拋      }            /**       * 根據(jù)屬性文件的配置把指定位置的指定文件內(nèi)容導(dǎo)入到指定的數(shù)據(jù)庫(kù)中       * 在命令窗口進(jìn)行mysql的數(shù)據(jù)庫(kù)導(dǎo)入一般分三步走:       * 第一步是登到到mysql; mysql -uusername -ppassword -hhost -Pport -DdatabaseName;如果在登錄的時(shí)候指定了數(shù)據(jù)庫(kù)名則會(huì)       * 直接轉(zhuǎn)向該數(shù)據(jù)庫(kù),這樣就可以跳過第二步,直接第三步;        * 第二步是切換到導(dǎo)入的目標(biāo)數(shù)據(jù)庫(kù);use importDatabaseName;       * 第三步是開始從目標(biāo)文件導(dǎo)入數(shù)據(jù)到目標(biāo)數(shù)據(jù)庫(kù);source importPath;       * @param properties       * @throws IOException        */     public static void importSql(Properties properties) throws IOException {          Runtime runtime = Runtime.getRuntime();          //因?yàn)樵诿畲翱谶M(jìn)行mysql數(shù)據(jù)庫(kù)的導(dǎo)入一般分三步走,所以所執(zhí)行的命令將以字符串?dāng)?shù)組的形式出現(xiàn)          String cmdarray[] = getImportCommand(properties);//根據(jù)屬性文件的配置獲取數(shù)據(jù)庫(kù)導(dǎo)入所需的命令,組成一個(gè)數(shù)組          //runtime.exec(cmdarray);//這里也是簡(jiǎn)單的直接拋出異常          Process process = runtime.exec(cmdarray[0]);          //執(zhí)行了第一條命令以后已經(jīng)登錄到mysql了,所以之后就是利用mysql的命令窗口          //進(jìn)程執(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();      }            /**       * 利用屬性文件提供的配置來(lái)拼裝命令語(yǔ)句       * 在拼裝命令語(yǔ)句的時(shí)候有一點(diǎn)是需要注意的:一般我們?cè)诿畲翱谥苯邮褂妹顏?lái)       * 進(jìn)行導(dǎo)出的時(shí)候可以簡(jiǎn)單使用“>”來(lái)表示導(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ù)庫(kù)名          String host = properties.getProperty("jdbc.host");//從哪個(gè)主機(jī)導(dǎo)出數(shù)據(jù)庫(kù),如果沒有指定這個(gè)值,則默認(rèn)取localhost          String port = properties.getProperty("jdbc.port");//使用的端口號(hào)          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ù)庫(kù)所需的命令       * 如果在登錄的時(shí)候指定了數(shù)據(jù)庫(kù)名則會(huì)       * 直接轉(zhuǎn)向該數(shù)據(jù)庫(kù),這樣就可以跳過第二步,直接第三步;        * @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ù)庫(kù)所在的主機(jī)          String port = properties.getProperty("jdbc.port");//使用的端口號(hào)          String importDatabaseName = properties.getProperty("jdbc.importDatabaseName");//導(dǎo)入的目標(biāo)數(shù)據(jù)庫(kù)的名稱          String importPath = properties.getProperty("jdbc.importPath");//導(dǎo)入的目標(biāo)文件所在的位置          //第一步,獲取登錄命令語(yǔ)句          String loginCommand = new StringBuffer().append("mysql -u").append(username).append(" -p").append(password).append(" -h").append(host)          .append(" -P").append(port).toString();          //第二步,獲取切換數(shù)據(jù)庫(kù)到目標(biāo)數(shù)據(jù)庫(kù)的命令語(yǔ)句          String switchCommand = new StringBuffer("use ").append(importDatabaseName).toString();          //第三步,獲取導(dǎo)入的命令語(yǔ)句          String importCommand = new StringBuffer("source ").append(importPath).toString();          //需要返回的命令語(yǔ)句數(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ù)庫(kù)、導(dǎo)入和導(dǎo)出

分享到:

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