Derby是Apache一个开源的、100%
Java编写的、与
平台无关的、易管理的关系数据库管理系统。
同名系统
Derby为用户提供了轻量的
标准数据库引擎,它可以紧密的嵌入到任何基于Java的解决方案中。Derby确保
数据完整性,并提供负责的事务处理操作。默认的配置中不包含任何独立的
数据库服务器。同时,Derby 的安装过程非常简单,只需要将其 .jar 文件复制到系统中并为您的项目添加该 .jar 文件即可。
Derby拥有一个令人惊奇的特性列表。它可以支持关系数据库中的所有企业级的特性,包括崩溃恢复、事务回滚和提交、行/表级锁、视图、主键/外键约束、触发器、子查询表达式,等等。一部分的列表特性使Derby从其他的Java 关系数据库管理系统中分离出来。
Derby可以有两种部署方式:
嵌入式:Derby被单个用户的Java应用程序使用,在这种模式下,Derby和应用程序运行在同一个JVM中。Derby对于终端用户几乎是透明的,因为它的启动和终止都是由应用程序来控制,而不需要任何的管理。
服务器模式:Derby由应用程序启动,此时通过用户可以通过网络连接。在这种模式下,Derby运行在服务器主机的JVM中。其他JVM的应用程序通过连接服务器来访问数据库。
数据库
Derby数据库是一个纯用Java实现的
内存数据库,属于Apache的一个开源项目。由于是用Java实现的,所以可以在任何平台上运行;另外一个特点是体积小,免安装,只需要几个小jar包就可以运行了。
Derby数据库入门
1,下载并安装Derby:
下载地址:,下载最新版本。
我用的是10.5.3.0。
在Path加入:%DERBY_HOME%in
3,测试看看Derby安装成功没有
开始—Run—CMD
运行 sysinfo
如果安装成功,将会看到相关信息,下面是截取的部分信息。
——— Derby 信息 ——–
JRE – JDBC: Java SE 6 – JDBC 4.0
.5.3.0 – (802917)
10.5.3.0 – (802917)
4,创建和使用数据库
然后输入ij
将会看到:
ij 版本 10.5
ij>
接下来就可以创建数据库了。
例:
创建firstdb数据库:
ij> connect ‘jdbc:derby:firstdb;create=true’;
连接firstdb数据库:
ij> connect ‘jdbc:derby:firstdb’;
查询数据库等操作,只需要输入相应的Sql语句即可。
创建一个table:
create table firsttable(id int primary key, name varchar(20));
插入数据:
insert into firsttable values(1, ‘Hotpepper’);
在命令行测试一下:
select * from firsttable;
结果如下:
ID |NAME
——————————–
1 |Hotpepper
其它命令
断开连接:
ij> disconnect;
退出ij:
ij> exit;
5,在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 Test {
private static String driver = “org.apache.derby.jdbc.EmbeddedDriver”;
private static String protocol = “jdbc:derby:”;
String dbName = “E:\Java\Joy\derby\Derby_data\firstdb”;
static 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(“Connected to and created database ” + 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) {
Test t = new Test();
t.loadDriver();
t.doIt();
}
}