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

          JDBC執行腳本文件

          Posted on 2012-05-08 19:57 Xing 閱讀(807) 評論(0)  編輯  收藏 所屬分類: 基礎
           1 調用JDBC API  executeBatch()方法。
           2 不知道有沒有直接調用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("加載驅動程序出錯");
          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 下換行是 \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文件內不能有注釋,friends.sql文件內容為
          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 

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


          網站導航:
           
          主站蜘蛛池模板: 岑溪市| 榆社县| 宝坻区| 长治县| 恭城| 龙陵县| 年辖:市辖区| 江津市| 彰化市| 新安县| 旬邑县| 策勒县| 德惠市| 响水县| 兰考县| 栾川县| 雷山县| 自贡市| 樟树市| 陵水| 扶风县| 北碚区| 二连浩特市| 福清市| 女性| 弥勒县| 常熟市| 绥德县| 惠安县| 鲁甸县| 东丰县| 年辖:市辖区| 平邑县| 张北县| 祁门县| 嘉鱼县| 江达县| 密云县| 保定市| 丰镇市| 阆中市|