Java執行上傳的sql指令檔

來源:互聯網
上載者:User

標籤:java   指令碼   執行sql   

    開始通過java執行cmd的方式調用sqlplus執行sql檔案,但是後來發現一旦進入sqlplus,指令碼執行完後就會一直等待而不關閉。後為了方便改成調用ant的SQLExec類提供的實現進行sql指令碼的執行。原始代碼如下,我是通過前端上傳sql指令檔後台服務端進行執行:

    SQLExec sqlExec = new SQLExec();    //設定資料庫參數    sqlExec.setDriver("oracle.jdbc.driver.OracleDriver");    sqlExec.setUrl("jdbc:oracle:thin:@192.168.5.110:1521:tcis3");    sqlExec.setUserid("bam30");    sqlExec.setPassword("bam30");    sqlExec.setSrc(new File("d:\\test.sql"));    //sqlExec.setOnerror((SQLExec.OnError)(EnumeratedAttribute.getInstance(SQLExec.OnError.class, "abort")));    sqlExec.setPrint(true); //設定是否輸出    //輸出到檔案 sql.out 中;不設定該屬性,預設輸出到控制台    sqlExec.setOutput(new File("d:/sql.log"));    sqlExec.setProject(new Project()); // 要指定這個屬性,不然會出錯    sqlExec.execute();

通過以上代碼就會執行sql指令碼了。為了簡單起見,我對異常的捕獲是通過try  catch來做的,沒有走異常流,然後再catch中將錯誤資訊進行捕捉然後返回,具體代碼就不列舉了。主要是sql指令碼的執行,通過對比,個人覺得這種方式效率也不錯,更重要的是避免了因為平台的問題導致的java調用cmd失效等問題。

本文出自 “菜鳥學習” 部落格,請務必保留此出處http://biyusheng.blog.51cto.com/2626140/1547314

Java執行上傳的sql指令檔

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.