Apache Derby是一个完全用java编写的数据库,Derby是一个Open source的产品,基于Apache License 2.0分发。
Apache Derby非常小巧,核心部分derby.jar只有2M,所以既可以做为单独的数据库服务器使用,也可以内嵌在应用程序中使用。
配置环境变量:
1.建立DERBY_HOME,值:E:\Java\Joy\derby\db- derby-10.5.3.0-bin\db-derby-10.5.3.0-bin
2.在Path加入:%DERBY_HOME%\bin
3.在CLASSPATH加入:%DERBY_HOME%\lib\derby.jar;%DERBY_HOME%\lib\derbyclient.jar;%DERBY_HOME%\lib\derbytools.jar;%DERBY_HOME%\lib\derbynet.jar
创建和使用数据库
打开命令行,进入想要放置数据库的目录,我的是:E:\Java\Joy \derby\Derby_data
然后输入ij
将会看到:
ij 版本 10.9
ij>
接下来就可以创建数据库了。
例:1、 创建firstdb数据库:
ij> connect ‘jdbc:derby:firstdb;create=true’;
连接firstdb数据库:
ij> connect ‘jdbc:derby:firstdb’;
查询数据库等操作,只需要输入相应的Sql语句即可。
2、创建一个table:
create table firsttable(id int primary key, name varchar(20));
3、插入数据:
insert into firsttable values(1, ‘Hotpepper’);
在命令行测试一下:
select * from firsttable;
结果如下:
ID |NAME
——————————–
1 |Hotpepper
断开连接:
ij> disconnect;
退出ij:
ij> exit;
在java程序中使用Derby
首先要把相关的Derby jar包加进来(Build Path)。
把derby.jar加进来,如果没有加进来会出现 “java.lang.ClassNotFoundException: org.apache.derby.jdbc.EmbeddedDriver”错误
好了,下面写JAVA代码进行测试:
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.sql.Statement;
public class DerbyTest {
private static String driver = "org.apache.derby.jdbc.EmbeddedDriver";
private static String protocol = "jdbc:derby:";
String dbName = "D:/db-derby-10.9.1.0-bin/Derby_data/firstdb";
public void loadDriver() {
try {
Class.forName(driver).newInstance();
System.out.println("Loaded the appropriate driver");
} catch (Exception e) {
e.printStackTrace();
}
}
public void doIt() {
Connection conn = null;
Statement s = null;
ResultSet rs = null;
System.out.println("starting");
try {
conn = DriverManager.getConnection(protocol + dbName+ ";create=true");
} catch (SQLException e) {
e.printStackTrace();
}
System.out.println(dbName);
try {
s=conn.createStatement();
rs=s.executeQuery("select * from firsttable");
while (rs.next()) {
System.out.println(rs.getInt(1));
System.out.println(rs.getString(2));
}
} catch (SQLException e1) {
e1.printStackTrace();
}
try {
conn.close();
conn = null;
s.close();
s = null;
rs.close();
rs = null;
} catch (Exception e) {
e.printStackTrace();
}
}
public static void main(String[] args) {
DerbyTest t = new DerbyTest();
t.loadDriver();
t.doIt();
}
}