posted @ 2012-05-08 20:15 Xing 閱讀(525) | 評論 (0) | 編輯 收藏
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
posted @ 2012-05-08 19:57 Xing 閱讀(807) | 評論 (0) | 編輯 收藏
2)JNDI(Java Name and Directory Interface): JNDI API被用于執(zhí)行名字和目錄服務(wù)。它提供了一致的模型來存取和操作企業(yè)級的資源如DNS和LDAP,本地文件系統(tǒng),或應(yīng)用服務(wù)器中的對象。
3)EJB(Enterprise JavaBean): J2EE技術(shù)之所以贏得某體廣泛重視的原因之一就是EJB。它們提供了一個框架來開發(fā)和實施分布式商務(wù)邏輯,由此很顯著地簡化了具有可伸縮性和高度復(fù)雜的 企業(yè)級應(yīng)用的開發(fā)。EJB規(guī)范定義了EJB組件在何時如何與它們的容器進行交互作用。容器負責(zé)提供公用的服務(wù),例如目錄服務(wù)、事務(wù)管理、安全性、資源緩沖 池以及容錯性。但這里值得注意的是,EJB并不是實現(xiàn)J2EE的唯一途徑。正是由于J2EE的開放性,使得有的廠商能夠以一種和EJB平行的方式來達到同 樣的目的。
4)RMI(Remote Method Invoke): 正如其名字所表示的那樣,RMI協(xié)議調(diào)用遠程對象上方法。它使用了序列化方式在客戶端和服務(wù)器端傳遞數(shù)據(jù)。RMI是一種被EJB使用的更底層的協(xié)議。
5) Java IDL/CORBA: 在Java IDL的支持下,開發(fā)人員可以將Java和CORBA集成在一起。他們可以創(chuàng)建Java對象并使之可在CORBA ORB中展開, 或者他們還可以創(chuàng)建Java類并作為和其它ORB一起展開的CORBA對象的客戶。后一種方法提供了另外一種途徑,通過它Java可以被用于將你的新的應(yīng) 用和舊的系統(tǒng)相集成。
6) JSP(Java Server Pages): JSP頁面由HTML代碼和嵌入其中的Java代碼所組成。服務(wù)器在頁面被客戶端所請求以后對這些Java代碼進行處理,然后將生成的HTML頁面返回給客戶端的瀏覽器。
7)Java Servlet: Servlet是一種小型的Java程序,它擴展了Web服務(wù)器的功能。作為一種服務(wù)器端的應(yīng)用,當(dāng)被請求時開始執(zhí)行,這和CGI Perl腳本很相似。Servlet提供的功能大多與JSP類似,不過實現(xiàn)的方式不同。JSP通常是大多數(shù)HTML代碼中嵌入少量的Java代碼,而 servlets全部由Java寫成并且生成HTML。
8) XML(Extensible Markup Language): XML是一種可以用來定義其它標(biāo)記語言的語言。它被用來在不同的商務(wù)過程中共享數(shù)據(jù)。XML的發(fā)展和Java是相互獨立的,但是,它和Java具有的相同 目標(biāo)正是平臺獨立性。通過將Java和XML的組合,您可以得到一個完美的具有平臺獨立性的解決方案。
9)JMS(Java Message Service): MS是用于和面向消息的中間件相互通信的應(yīng)用程序接口(API)。它既支持點對點的域,有支持發(fā)布/訂閱(publish/subscribe)類型的 域,并且提供對下列類型的支持:經(jīng)認(rèn)可的消息傳遞,事務(wù)型消息的傳遞,一致性消息和具有持久性的訂閱者支持。JMS還提供了另一種方式來對您的應(yīng)用與舊的 后臺系統(tǒng)相集成。
10)JTA(Java Transaction Architecture): JTA定義了一種標(biāo)準(zhǔn)的API,應(yīng)用系統(tǒng)由此可以訪問各種事務(wù)監(jiān)控。
11)JTS(Java Transaction Service): JTS是CORBA OTS事務(wù)監(jiān)控的基本的實現(xiàn)。JTS規(guī)定了事務(wù)管理器的實現(xiàn)方式。該事務(wù)管理器是在高層支持Java Transaction API (JTA)規(guī)范,并且在較底層實現(xiàn)OMG OTS specification的Java映像。JTS事務(wù)管理器為應(yīng)用服務(wù)器、資源管理器、獨立的應(yīng)用以及通信資源管理器提供了事務(wù)服務(wù)。
12)JavaMail: JavaMail是用于存取郵件服務(wù)器的API,它提供了一套郵件服務(wù)器的抽象類。不僅支持SMTP服務(wù)器,也支持IMAP服務(wù)器。
13) JTA(JavaBeans Activation Framework): JavaMail利用JAF來處理MIME編碼的郵件附件。MIME的字節(jié)流可以被轉(zhuǎn)換成Java對象,或者轉(zhuǎn)換自Java對象。大多數(shù)應(yīng)用都可以不需要直接使用JAF。
posted @ 2012-05-08 19:55 Xing 閱讀(220) | 評論 (0) | 編輯 收藏