Derby資料庫有兩種運作模式(Derby的jar包都在%JAVA_HOME%/db/lib,沒有的就自己下載下傳derby.jar)
您可以采用兩種模式來部署和運作Derby:
在嵌入式模式(embedded mode)中,Derby隻處理來自與應用程式使用的JVM相同的JVM的請求。在采用嵌入式模式來使用Derby時,應用程式會在啟動和關閉時分别自動啟動或停止關系引擎。Derby包的derby.jar檔案(2MB)包含了Derby 資料庫引擎和嵌入式JDBC驅動程式。
在網絡伺服器模式(network server mode)中,Derby會處理來自不同JVM的應用程式請求。或者,如果您喜歡使用Perl、PHP、Python或C來編寫程式,那麼您也可以部署一個Derby網絡伺服器,并通過各種語言特有的子產品連接配接到這個伺服器上,例如Perl的DBI(Database Interface)和PHP的ODBC(Open Database Connectivity)。Derby的derbynet.jar檔案(0.2MB)包含了Derby Network Server。
一、嵌入式資料庫
public class EmbeddedDerbyTester {
public static void main(String[] args) {
String driver = "org.apache.derby.jdbc.EmbeddedDriver";//在derby.jar裡面
String dbName="EmbeddedDB";
String dbURL = "jdbc:derby:" + dbName + ";create=true;territory=zh_CN;user=root;password=root";// create=true表示當資料庫不存在時就建立它 try {
Class.forName(driver);
Connection conn = DriverManager.getConnection(dbURL);//啟動嵌入式資料庫
Statement st = conn.createStatement();
st.execute("create table foo (FOOID INT NOT NULL,FOONAME VARCHAR(30) NOT NULL)");//建立foo表
st.executeUpdate("insert into foo(FOOID,FOONAME) values (1,'chinajash')");//插入一條資料
ResultSet rs = st.executeQuery("select * from foo");//讀取剛插入的資料
while(rs.next()){
int id = rs.getInt(1);
String name = rs.getString(2);
System.out.println("id="+id+";name="+name);
}
} catch(Exception e){
e.printStackTrace();
}
}
}
運作上面程式後,會在目前目錄生成名為EmbeddedDB的檔案夾,既是EmbeddedDB資料庫的資料檔案存放的地方,控制台将輸出
id=1;name=chinajash
二、網絡資料庫
public class NetworkServerDerbyTester {
public static void main(String[] args) {
String driver = "org.apache.derby.jdbc.ClientDriver";//在derbyclient.jar裡面
String dbName="NetworkDB";
String connectionURL = "jdbc:derby://localhost:1527/" + dbName + ";create=true";
try {
NetworkServerControl derbyServer = new NetworkServerControl();//NetworkServerControl類在derbynet.jar裡面
PrintWriter pw = new PrintWriter(System.out);//用系統輸出作為Derby資料庫的輸出
derbyServer.start(pw);//啟動Derby伺服器
Class.forName(driver);
DriverManager.getConnection(connectionURL);
//do something
derbyServer.shutdown();//關閉Derby伺服器
} catch (Exception ex) {
ex.printStackTrace();
}
}
}
運作上面程式後,會在目前目錄生成名為NetworkDB的檔案夾