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的文件夹
效果实例图: