下载db-derby-10.10.2.0-bin
derby是Java 自带的一个关系型数据库,它完全是基于Java研发的,非常小。
本身从JDK1.6之后,每次安装jdk都会自带derby数据库,由于jdk自带的数据库版本不够新,所以也可以从网上单独下载一个。我下载的是db-derby-10.10.2.0-bin。下载之后解压大D盘。
配置环境变量
由于derby是纯Java开发的,所以必须配置环境变量。首先必须配置jdk,这个配置我就省略了,重点介绍derby的配置。
在环境变量里面:
配置DERBY_HOME
配置:PATH
配置CLASSPATH
要使用Derby,必须在CLASSPATH中包含这个工具,如下:
c:/Program Files/Java/jdk1.6.0/db/derby.jar
c:/Program Files/Java/jdk1.6.0/db/derbytools.jar
在derby.jar文件中包含由JDBC内嵌模式的驱动;在derbytools.jar中包含由ij工具。
配置完成之后,在命令行输入:ij
此时表示derby配置成功。
Derby数据库的两种运行模式
1) 内嵌式模式(embedded mode)。Derby数据库与应用程序共享同一个JVM,应用程序会在启动和关闭时分别自动启动或停止关系引擎。Derby包的derby.jar文件包含了Derby 数据库引擎和嵌入式JDBC驱动程序;
- 进入目录C:\Users\Administrator\Desktop\test\database
- 输入ij
- 输入connect 'jdbc:derby:test;'
注意:内嵌模式有且只有一个连接。
2) 网络服务器模式(network server mode)。Derby数据库独占一个JVM,做为服务器上的一个独立进程运行。在这种模式下,允许有多个应用程序来访问同一个Derby数据库。Derby的derbynet.jar文件包含了
- 开启服务
- java -jarD:\db-derby-10.9.1.0-bin\lib\derbyrun.jar server start(改成你的derby目录)
- 连接数据库
- connect'jdbc:derby://localhost:1527/myDemo';
连接数据库
connect 'jdbc:derby:D:/db-derby-10.10.2.0-bin/demo/databases/toursdb;user=ylsoft;password=hwyl;create=true';
通过内嵌模式连接数据库toursdb,如果数据库不存在则创建一个并连接,如果存在,则直接连接。
创建一个up_temp表
create table up_temp(id varchar(36) not null,address varchar(100) not null,content varchar(500),version varchar(10) not null,node_id varchar(36) not null,type varchar(2) not null,local_temp varchar(200) not null,createtime timestamp not null,filename varchar(50) not null,primary key(id));
插入一条数据
INSERT INTO up_temp (id,address,content,version,node_id,type,local_temp,createtime) VALUES ('2f843624-cb6f-49f0-aab6-59c4307f5954','http://36.110.44.138:44685/downloadAction!download.action?fid=2ff67da3-74bf-43a0-9a6c-301e6b4af325','测试','1.0.0.0','2f843624-cb6f-49f0-aab6-59c4307f5954','1','http://36.110.44.138:44685/downloadAction!download.action?fid=2ff67da3-74bf-43a0-9a6c-301e6b4af325','2017-04-10 15:35:00');
此时为止,数据库里面有数据了。
下面看个例子
这个例子我数据库的位置在:D:\Program Files\Java\jdk1.7.0_79\jre\cacheup
所以我创建的是cacheup数据库
嵌入式的驱动:
<dependency> <groupId>org.apache.derby</groupId> <artifactId>derby</artifactId> <version>10.10.2.0</version> </dependency>注意:嵌入式模式与网络服务器模式的驱动不同。
网络模式驱动:org.apache.derby.jdbc.ClientDriver
package derby; import java.sql.Connection; import java.sql.DriverManager; import java.sql.ResultSet; import java.sql.ResultSetMetaData; import java.sql.Statement; import java.util.HashMap; import java.util.Map; public class DerbyTest{ private static String driver = "org.apache.derby.jdbc.EmbeddedDriver"; private static String protocol = "jdbc:derby:"; private static String dbName = System.getProperty("java.home") + "\\cacheup"; private static String username = "ylsoft"; private static String userpwd = "hwyl"; public static void loadDriver() { try { Class.forName(driver).newInstance(); } catch (Exception e) { e.printStackTrace(); } } public static void main(String[] args) throws Exception{ System.out.println(protocol + dbName + ";user=" + username + ";password=" + userpwd + ";create=true"); loadDriver(); System.out.println(get("up_temp")); } public static String get(String tablename) throws Exception{ Map rowData = new HashMap(); try { Connection conn = DriverManager.getConnection(protocol + dbName + ";user=" + username + ";password=" + userpwd + ";create=true"); Statement statement = conn.createStatement(); ResultSet resultSet = statement.executeQuery("select * from " + tablename); ResultSetMetaData md = resultSet.getMetaData(); int columnCount = md.getColumnCount(); while (resultSet.next()) { for (int i = 1; i <= columnCount; i++) { rowData.put(md.getColumnName(i), resultSet.getObject(i)); } } conn.close(); statement.close(); resultSet.close(); } catch (Exception e1) { e1.printStackTrace(); } return rowData.toString(); } }操作与jdbc操作是一样的,很简答。
网络服务器模式:
Derby数据库的网络模式应用
derby数据库不但可以通过嵌入式模式工作,与其他的数据库相同,也可以工作在网络模式下
同时为多个应用程序服务,处理来自不同JVM的数据库操作请求。
1、网络模式derby的工作原理
如果使用过其他的一些大型数据库,例如oracle、db2等,那么应该对数据库的网络
工作模式(c/s模式)的原理相当熟悉。
在这种模式下derby与其他数据库一样作为一个独立的服务器工作在网络上,等待来自其他
java应用程序的连接请求。这种模式中derby可以同时为不同的java应用程序服务,处理来自不同JVM
的数据库操作请求,也就是说同一时刻可以有多个应用程序访问同一个derby数据库。
说明:当不适合采用嵌入式进行操作时,例如应用程序与数据库不在同一台机器上,
或者数据库需要多用户并发访问时,就可以采用网络模式的的derby。
2、操作网络模式的derby
接下来介绍如何对网络模式下的derby进行操作,主要包括以网络模式启动derby
以及使用ij工具连接网络模式的derby。
①以网络模式启动derby
使用网络模式操作derby数据库前,首先要以网络模式启动derby数据库服务器,
下面给出了启动命令的基本格式:
java org.apache.derby.drda.NetworkServerControl start [-h <host> [-p <port>]]
NetworkServerControl是系统提供的一个用于启动derby服务器的类,位于derbynet.jar文件中。
因此需要将derbynet.jar文件路径添加到系统的classpath环境变量中。
方括号中为可选参数,"-h <host>"用来指定主机,"-p <port>"用来指定端口号,
默认的主机为localhost,默认的端口号为1527。
例如,下面给出了一个启动derby数据库服务器工作在本机1527端口的命令。
java org.apache.derby.drda.NetworkServerControl start -h localhost -p 1572
当成功启动derby数据库的网络服务后,可以从网路中的其他机器或本机来对该机器中的derby数据库
进行操作了。需要特别注意的是,在执行网路操作的过程中,cmd窗口不能关闭,一旦关闭则将断开网路服务。
②使用ij工具连接网络模式的derby
当derby数据库的网路服务启动后,可以使用ij工具进行连接和操作,
下面给出了ij中连接网络模式derby的名称格式。
connect 'jdbc:derby://<服务器主机地址>:<服务器端口号>/<数据库路径>[;create=True|False]';
提示:使用上述命令连接derby数据库服务器之前首先需要将derbyclient.jar文件路径添加到系统的
classpath环境变量中,
例如,下面的命令连接上了上面启动的derby数据库服务。
connect 'jdbc:derby://localhost:1572/E:/roway';
如果上述命令在ij中成功执行,则与指定数据库的连接成功建立,接着就可以使用各种命令对所连接的
数据库进行操作了。对网络derby数据库进行操作的命令与嵌入式derby完全相同。
3、开发启动derby网络服务的程序
实际应用中,不但可以通过前面介绍的命令来启动的derby数据库的网路服务,也可以通过自己开发的
java程序来启动derby数据库的网络服务。
从前面的介绍中可以发现,通过命令启动derby数据库的网络服务需要使用
org.apache.derby.drda.NetworkServerControl类。同样,自己开发程序启动derby数据库的网络服务也需要
使用这个类,有兴趣的可以自行查阅API。
相关推荐
Java Derby数据库是一个轻量级、完全用Java语言编写的开源数据库管理系统,被集成在Java SE 6(代号Mustang)中,为开发者提供了一种简单、易用且免费的数据库解决方案。Derby来源于Apache软件基金会的项目,体积...
### Derby安装及嵌入Java初步应用详解 #### 一、Derby简介 Apache Derby是一款开源的轻量级关系型数据库管理系统(RDBMS),它以其简单易用、高性能和易于集成的特点而闻名。Derby支持标准SQL语言,并且能够作为...
Derby数据库连接方法详解 Derby数据库连接方法是Java应用程序连接Derby数据库的主要方式。 Derby数据库是一种嵌入式关系数据库管理系统,可以嵌入到Java应用程序中,提供了一个轻量级、可靠的数据库解决方案。 ...
### Apache Derby 数据库使用详解 #### 一、Apache Derby简介 Apache Derby是一款开源的关系型数据库管理系统,它以Java语言编写,能够嵌入到Java应用程序中或任何使用Java平台作为服务器的环境中。Derby的主要...
### Eclipse 插件 Derby 安装与 Derby 插件开发详解 #### 一、Eclipse 插件 Derby 安装 在本节中,我们将详细介绍如何在 Eclipse 中安装 Apache Derby 相关插件,以便更好地支持数据库管理和开发工作。 ##### ...
【Apache Derby 开发详解——轻松获胜】 Apache Derby 是一款开源的、基于标准的轻量级Java数据库管理系统,由Apache软件基金会维护,源自IBM的捐赠。它以其小巧的内存占用和高性能而著称,同时实现了多种数据库...
### MyEclipse Derby详解 #### 一、Derby概述 Derby是Apache Software Foundation (ASF)的一个开源项目,该项目起源于IBM将自家的Cloudscape数据库(一种纯Java的关系型数据库)作为开源软件贡献给了ASF。...
Derby是一个轻量级的、完全由Java编写的数据库引擎,这使得它能够轻松地被集成到各种Java应用程序中,无需额外的安装过程。它支持SQL92E标准及部分SQL99的扩展,并具备事务处理、崩溃恢复和并发控制等高级功能。此外...
Apache Derby是一款轻量级、完全Java编写的数据库,它易于嵌入到Java应用程序中,支持标准的SQL语法,并提供了丰富的JDBC驱动程序。由于其小巧且完全开源的特性,Derby在开发环境中被广泛应用。 2. **Eclipse集成...
### Derby开发手册知识点详解 #### 一、导言与概述 **标题:** "Derby开发手册" **描述:** "Derby开发手册,很实用的,帮助很大。" **标签:** "derby" 本手册是针对Apache Derby数据库系统的开发者指南,提供...
### Derby Java DB 参考手册知识点详解 #### 关于Derby数据库 Derby是一款开源的关系型数据库管理系统(RDBMS),特别适用于Java应用程序。它完全用Java语言编写,并且可以作为嵌入式数据库运行,也可以作为客户端...
Derby数据库是一个基于Java语言的开源关系型数据库管理系统,由Apache软件基金会开发并维护。由于其完全用Java编写,因此具备跨平台的特性,能够在任何支持Java的环境中运行。Derby有两个主要的运行模式:内嵌模式和...
Apache Derby 是一个全面开源的关系数据库管理系统,完全由 Java 语言编写,这使得它与Java应用程序无缝集成。Derby 提供了丰富的特性和功能,适用于各种应用场景,尤其适合嵌入式系统和小型应用。 Derby 支持 SQL...
Java Derby,又名Apache Derby,是一款轻量级的关系型数据库管理系统,常被用于嵌入式开发或作为Java应用程序的内部数据库。sqLeonardo对Java Derby的优化使得它在处理Derby数据库时具有以下优势: 1. **结构可视化...