posts - 4, comments - 0, trackbacks - 0, articles - 0

          JDBC執(zhí)行腳本文件

          Posted on 2012-05-08 19:57 Xing 閱讀(807) 評論(0)  編輯  收藏 所屬分類: 基礎
           1 調(diào)用JDBC API  executeBatch()方法。
           2 不知道有沒有直接調(diào)用sqlplus 的API。。
           3 sqlplus username/pwd@oracle @1.sql
           4 
           5 import java.sql.*;
           6 import java.awt.*;
           7 import java.util.List;
           8 import java.util.ArrayList;
           9 import java.io.*;
          10 import java.lang.*;
          11 
          12 public class Test {
          13 
          14     /**
          15      * @param args the command line arguments
          16      */
          17     public Test() {
          18         try {
          19             Class.forName("sun.jdbc.odbc.JdbcOdbcDriver");
          20         } catch (Exception e) {
          21             System.out.println("加載驅(qū)動程序出錯");
          22             return;
          23         }
          24     }
          25 
          26     List<String> loadSql(String sqlFile) throws Exception {
          27         List<String> sqlList = new ArrayList<String>();
          28         try {
          29             InputStream sqlFileIn = new FileInputStream(sqlFile);
          30             StringBuffer sqlSb = new StringBuffer();
          31             byte[] buff = new byte[1024];
          32             int byteRead = 0;
          33             while ((byteRead = sqlFileIn.read(buff)) != -1) {
          34                 sqlSb.append(new String(buff, 0, byteRead));
          35             } // Windows 下?lián)Q行是 \r\n, Linux 下是 \n
          36 
          37             String[] sqlArr = sqlSb.toString().split("(;\\s*\\r\\n)(;\\s*\\n)");
          38             for (int i = 0; i < sqlArr.length; i++) {
          39                 String sql = sqlArr[i].replaceAll("--.*""").trim();
          40 
          41                 if (!sql.equals("")) {
          42                     sqlList.add(sql);
          43                 }
          44             }
          45             return sqlList;
          46         } catch (Exception ex) {
          47             throw new Exception(ex.getMessage());
          48         }
          49     }
          50     public static void main(String[] args) throws Exception {
          51         String url = "jdbc:odbc:friends";
          52         Connection con;
          53         String sqlFile = "E:\\friends.sql";
          54       
          55         try {
          56             con = DriverManager.getConnection(url);
          57             List<String> sqlList = new Test().loadSql(sqlFile);
          58             Statement smt = con.createStatement();
          59 
          60             for (String sql : sqlList) {
          61                 smt.addBatch(sql);
          62             }
          63             smt.executeBatch();
          64 
          65         } catch (SQLException e) {
          66         }
          67 
          68     }
          69 }
          70 
          71 sql文件內(nèi)不能有注釋,friends.sql文件內(nèi)容為
          72 CREATE TABLE [dbo].[friends](
          73     [name] [varchar](50) COLLATE NOT NULL,
          74     [address] [varchar](50) COLLATE NULL,
          75     [phone] [bigint] NULL,
          76     [hireDate] [datetime] NULL,
          77     [salary] [int] NULL
          78 )
          79 

          只有注冊用戶登錄后才能發(fā)表評論。


          網(wǎng)站導航:
           
          主站蜘蛛池模板: 崇文区| 宽城| 林芝县| 横山县| 容城县| 宣威市| 辉南县| 翁源县| 甘洛县| 泰州市| 双鸭山市| 陇川县| 长武县| 平塘县| 甘泉县| 习水县| 龙门县| 随州市| 罗山县| 芜湖市| 铁岭县| 沧州市| 托克逊县| 高碑店市| 垦利县| 宽甸| 赤壁市| 宁晋县| 灌阳县| 凤城市| 五家渠市| 海阳市| 修文县| 秀山| 灌南县| 应城市| 蒙自县| 定西市| 读书| 包头市| 太康县|