天天看點

建立并連接配接derby資料庫

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的檔案夾