`
747017186
  • 浏览: 331548 次
社区版块
存档分类
最新评论

java derby详解

    博客分类:
  • java
 
阅读更多

下载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驱动程序;

  1. 进入目录C:\Users\Administrator\Desktop\test\database  
  2. 输入ij  
  3. 输入connect 'jdbc:derby:test;'  

注意:内嵌模式有且只有一个连接。

2) 网络服务器模式(network server mode)。Derby数据库独占一个JVM,做为服务器上的一个独立进程运行。在这种模式下,允许有多个应用程序来访问同一个Derby数据库。Derby的derbynet.jar文件包含了

  1. 开启服务  
  2.   
  3. java -jarD:\db-derby-10.9.1.0-bin\lib\derbyrun.jar server start(改成你的derby目录)  
  4.   
  5. 连接数据库  
  6.   
  7. 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。

 

  • 大小: 21.6 KB
  • 大小: 28.1 KB
  • 大小: 28.1 KB
  • 大小: 28.2 KB
分享到:
评论

相关推荐

    java derby数据库详解

    Java Derby数据库是一个轻量级、完全用Java语言编写的开源数据库管理系统,被集成在Java SE 6(代号Mustang)中,为开发者提供了一种简单、易用且免费的数据库解决方案。Derby来源于Apache软件基金会的项目,体积...

    derby安装以及嵌入java初步说明

    ### Derby安装及嵌入Java初步应用详解 #### 一、Derby简介 Apache Derby是一款开源的轻量级关系型数据库管理系统(RDBMS),它以其简单易用、高性能和易于集成的特点而闻名。Derby支持标准SQL语言,并且能够作为...

    连接derby数据库方法—附图

    Derby数据库连接方法详解 Derby数据库连接方法是Java应用程序连接Derby数据库的主要方式。 Derby数据库是一种嵌入式关系数据库管理系统,可以嵌入到Java应用程序中,提供了一个轻量级、可靠的数据库解决方案。 ...

    derby使用

    ### Apache Derby 数据库使用详解 #### 一、Apache Derby简介 Apache Derby是一款开源的关系型数据库管理系统,它以Java语言编写,能够嵌入到Java应用程序中或任何使用Java平台作为服务器的环境中。Derby的主要...

    Eclipse插件Derby安装 Derby插件开发

    ### Eclipse 插件 Derby 安装与 Derby 插件开发详解 #### 一、Eclipse 插件 Derby 安装 在本节中,我们将详细介绍如何在 Eclipse 中安装 Apache Derby 相关插件,以便更好地支持数据库管理和开发工作。 ##### ...

    用 Apache Derby 进行开发 —— 取得节节胜利

    【Apache Derby 开发详解——轻松获胜】 Apache Derby 是一款开源的、基于标准的轻量级Java数据库管理系统,由Apache软件基金会维护,源自IBM的捐赠。它以其小巧的内存占用和高性能而著称,同时实现了多种数据库...

    MyEclipse Derby是什么.txt

    ### MyEclipse Derby详解 #### 一、Derby概述 Derby是Apache Software Foundation (ASF)的一个开源项目,该项目起源于IBM将自家的Cloudscape数据库(一种纯Java的关系型数据库)作为开源软件贡献给了ASF。...

    JavaSE6.0的Derby嵌入式数据库

    Derby是一个轻量级的、完全由Java编写的数据库引擎,这使得它能够轻松地被集成到各种Java应用程序中,无需额外的安装过程。它支持SQL92E标准及部分SQL99的扩展,并具备事务处理、崩溃恢复和并发控制等高级功能。此外...

    derby辅助工具SQuirreL SQL Client的使用

    Apache Derby是一款轻量级、完全Java编写的数据库,它易于嵌入到Java应用程序中,支持标准的SQL语法,并提供了丰富的JDBC驱动程序。由于其小巧且完全开源的特性,Derby在开发环境中被广泛应用。 2. **Eclipse集成...

    derby开发手册

    ### Derby开发手册知识点详解 #### 一、导言与概述 **标题:** "Derby开发手册" **描述:** "Derby开发手册,很实用的,帮助很大。" **标签:** "derby" 本手册是针对Apache Derby数据库系统的开发者指南,提供...

    Derby_Java_DB_参考手册

    ### Derby Java DB 参考手册知识点详解 #### 关于Derby数据库 Derby是一款开源的关系型数据库管理系统(RDBMS),特别适用于Java应用程序。它完全用Java语言编写,并且可以作为嵌入式数据库运行,也可以作为客户端...

    Derby数据库入门.pdf

    Derby数据库是一个基于Java语言的开源关系型数据库管理系统,由Apache软件基金会开发并维护。由于其完全用Java编写,因此具备跨平台的特性,能够在任何支持Java的环境中运行。Derby有两个主要的运行模式:内嵌模式和...

    derby数据库详解.doc

    Apache Derby 是一个全面开源的关系数据库管理系统,完全由 Java 语言编写,这使得它与Java应用程序无缝集成。Derby 提供了丰富的特性和功能,适用于各种应用场景,尤其适合嵌入式系统和小型应用。 Derby 支持 SQL...

    sqleonardo,数据库客户端

    Java Derby,又名Apache Derby,是一款轻量级的关系型数据库管理系统,常被用于嵌入式开发或作为Java应用程序的内部数据库。sqLeonardo对Java Derby的优化使得它在处理Derby数据库时具有以下优势: 1. **结构可视化...

Global site tag (gtag.js) - Google Analytics