下载:
到网站上下载一个derby.jar就可以了
如果需要客户端工具,还需要下载derbytools.jar
如果需要启动网络功能,还需要下载derbynet.jar
这里是百度盘的下载地址:http://pan.baidu.com/s/1o69D9vs
配置:
将两个jar包添加到CLASSPATH环境变量中就可以了
比如:
CLASSPATH=.;D:\jarlib\derby\derby.jar;D:\jarlib\derby\derbytools.jar
当配置了derbytools.jar后可以在控制台输入以下命令查看配置信息:
java org.apache.derby.tools.sysinfo
启动客户端:
在控制台输入以下命令后即可启动客户端:
java org.apache.derby.tools.ij
创建数据库:
connect 'jdbc:derby:mydb;create=true' ; //创建/连接嵌入式数据库
connect 'jdbc:derby://localhost:1527/dbname;create=true' ; //创建/链接网络数据库
在使用嵌入式创建数据库的时候,如果只写数据库名则会在class目录下进行创建,也可以指定其他位置进行创建
//con = DriverManager.getConnection("jdbc:derby:userDB;create=true;user=test;password=test"); //userDB创建在class运行目录
//con = DriverManager.getConnection("jdbc:derby:a/b/userDB;create=true;user=test;password=test"); //userDB创建在class下面的a/b文件夹下面,
con = DriverManager.getConnection("jdbc:derby:d:/a/b/userDB;create=true;user=test;password=test"); //userDB创建在d盘下面的a/b文件夹下面,
连接数据库:
connect 'jdbc:derby:mydb;create=true' ; //创建/连接嵌入式数据库
connect 'jdbc:derby://localhost:1527/dbname;create=true' ; //创建/链接网络数据库
断开数据库
disconnect ;
退出客户端:
exit ;
启动derby的网络监听:
debery数据库默认监听127.0.0.1的1527端口,
可以修改监听的IP和PORT
java org.apache.derby.drda.NetworkServerControl start -p 1388 #指定端口
或者
$DERBY_HOME/bin/startNetworkServer -h myhost -p 1388 #指定ip和端口
在连接上数据库后就可以执行数据库操作了,比如建表,查询,删除,更新等操作。
下面是两段java代码访问derby数据库的范例代码,代码从【黄瓜和土豆的专栏】处copy而来,自己懒得再写一遍了。
嵌入方式访问数据库:
package test;
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.ResultSet;
import java.sql.Statement;
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";//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();
}
}
}
网络方式访问数据库:
package test;
import java.io.PrintWriter;
import java.sql.DriverManager;
import org.apache.derby.drda.NetworkServerControl;
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 {
/*
创建Derby网络服务器,默认端口是1527,也可以通过运行
<Derby_Home>/frameworks/NetworkServer/bin/startNetworkServer.bat
来创建并启动Derby网络服务器,如果是Unix,用startNetworkServer.ksh
*/
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();
}
}
}