1、Apache Derby是一个完全用java编写的数据库,Derby是一个Open source的产品,基于Apache License 2.0分发。
Apache Derby非常小巧,核心部分derby.jar只有2M,所以既可以做为单独的数据库服务器使用,也可以内嵌在应用程序中使用。Cognos 8 BI的Content Store默认就是使用的Derby数据库,可以在Cognos8的安装目录下看到一个叫derby10.1.2.1的目录,就是内嵌的10.1.2.1 版本的derby。
2、Apache Derby 项目的目标是构建一个完全用 Java 编程语言编写的、易于使用却适合大多数应用程序的开放源码数据库。可以想像,开发一个数据库并不简单,Apache Derby 数据库也不例外(因为它是个开放源码软件,所以您可以自行查看它)。但是 Derby 项目并不是从零开始的。回到 1996 年,一个叫做 Cloudscape, Inc 的新公司成立了,公司的目标是构建一个用 Java 语言编写的数据库服务器。公司的第一个发行版在一年之后推出,后来产品的名称变成 Cloudscape。1999 年,Cloudscape, Inc. 被大型数据库厂商 Informix Software, Inc. 收购。
首先英文单词De r b y 这个词的意思从字面上来讲,有两个,一个是英格兰中部的德比郡(相当于中国一个省),当然这里有一支英超球队;另一个意思是大赛马会,这是英国最著名的赛马大会,创建于1780年,奖金最为丰厚,比赛地点在伦敦南部的赛马场,它的名字叫做Der by是因为创办者名叫德比伯爵。 从这两层意思上不可能看出为什么一个城市的两支球队举行的比赛叫做德比之战。这种说法尽管每天都出现在英国报纸上,但对于它的起源,大多数英国人也不知道,记者曾询问过很多足球记者,都说不上来。最后英国资格最老的足球记者、《星期日泰晤士报》的布莱恩·格兰威尔解开了这个典故。他说,德比大战其实与德比郡有关系,19世纪初,足球尽管还没有发展为有组织的比赛,但在英格兰已是非常流行的体育运动,尤以德比郡为最(在足球发展进程发挥了重要作用,开了很多先河的诺丁汉森林俱乐部就在德比郡,包括护腿板以及球网等都是从这里开始第一次使用的),尽管规则并不完善,但德比郡中心城市德比市比赛已经很多,球迷数量也很大。1846年,德比市两支球队相约,每年6月的第一个星期二,举行一场比赛,这场比赛一开始只是地方性的,但随着时间的推移,逐渐在整个英格兰传播开来。德比大战的叫法于是传开了。而德比大战,对于推动足球规则的统一和1863年英格兰足总的成立,甚至1888年英格兰足球联盟和各级联赛的创立,都有着直接或者是间接的影响。 “德比”(DERBY)一词来源于英语,原指英国德比郡。德比是举办赛马的地方,因为那里盛产名马,后来英国很多赛马都是出自德比,因而在英国赛马中往往是德比马在对抗。德比后被引申到职业化的足球、橄榄球、篮球和冰球等俱乐部赛事中,演绎成“同城之战”。德比双方出于争夺球迷、拉拢赞助商的需要往往对比赛倾尽全力,媒体也尽力渲染。 历史上的德比大战,经常伴随着金戈铁马的火并,曾涌现出一幕幕惊心动魄的“悲喜剧”。久负盛名的“同城双雄”包括意大利米兰城的国际米兰和AC米兰以及罗马城的罗马队和拉齐奥队等。1,下载并安装Derby:下载地址:http://db.apache.org/derby /derby_downloads.html,下载最新版本。
我用的是10.5.3.0。
解压缩到任意文件夹,我的是:E:\Java\Joy\derby
2,配置环境变量:
建立DERBY_HOME,值:E:\Java\Joy\derby\db- derby-10.5.3.0-bin\db-derby-10.5.3.0-bin
在Path加入:%DERBY_HOME%\bin
在CLASSPATH加入:%DERBY_HOME%\lib \derby.jar%DERBY_HOME%\lib\derbyclient.jar%DERBY_HOME%\lib\derbytools.jar%DERBY_HOME%\lib\derbynet.jar
3,测试看看Derby安装成功没有
开始—Run—CMD
运行 sysinfo
如果安装成功,将会看到相关信息,下面是截取的部分信息。
——— Derby 信息 ——–
JRE – JDBC: Java SE 6 – JDBC 4.0
[E:\Java\Joy\derby\db-derby-10.5.3.0-bin\db-derby-10.5.3.0-bin\lib\derby.jar] 10
.5.3.0 – (802917)
[E:\Java\Joy\derby\db-derby-10.5.3.0-bin\db-derby-10.5.3.0-bin\lib\derbytools.ja
r] 10.5.3.0 – (802917)
[E:\Java\Joy\derby\db-derby-10.5.3.0-bin\db-derby-10.5.3.0-bin\lib\derbynet.jar]
10.5.3.0 – (802917)
[E:\Java\Joy\derby\db-derby-10.5.3.0-bin\db-derby-10.5.3.0-bin\lib\derbyclient.j
ar] 10.5.3.0 – (802917)
4,创建和使用数据库
打开命令行,进入想要放置数据库的目录,我的是:E:\Java\Joy \derby\Derby_data
然后输入ij
将会看到:
ij 版本 10.5
ij>
接下来就可以创建数据库了。
例:
创建firstdb数据库:
ij>connect ‘jdbc:derby:firstdbcreate=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()
}
}
OK,完成了。
—————————————————-
附:复制粘贴Derby数据库:
备份Derby数据库(derby-10.5.3.0)
小试了一下,很简单的,就复制粘贴就好了。
找到想要复制的数据库文件夹,比如:
C:\Program Files\SQuirreL SQL Client\firstdb
我们就把整个firstdb文件夹复制下来,然后粘贴到想要粘贴的地方。
就那么简单。
以上是我突发奇想试试看,没想到就成了。在网上搜了一下,貌似derby备份的方法不是这样的,而这种方法莫非是传说中的“热备份”?
6,在DbVisualizer中使用Derby
选择Database时选择到数据库的目录。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)