首页 > 数据库 >Derby 数据库介绍(1)--简介

Derby 数据库介绍(1)--简介

时间:2024-12-15 20:09:03浏览次数:7  
标签:-- 简介 数据库 Derby jar SYS derby myDb

Apache Derby 是 Apache DB 的一个子项目,是一个完全用 Java 实现的开源关系数据库,采用 Apache License 2.0 许可;本文主要介绍其基本概念及安装。

1、Derby 特点

Derby 体积小——基础引擎和嵌入式 JDBC 驱动程序约 3.5MB。
Derby 基于 Java、JDBC 和 SQL 标准。
Derby 提供嵌入式 JDBC 驱动程序,可以将 Derby 嵌入到任何基于 Java 的解决方案中。
Derby 还支持更常见的客户端/服务器模式,通过 Derby 网络客户端 JDBC 驱动程序和 Derby 网络服务器来实现。
Derby 安装、部署和使用都很简单。

2、数据库类型

2.1.1、内存数据库

数据库的所有数据都保存在内存中,服务关闭数据丢失。

2.1.2、文件数据库

数据库数据库数据以文件的方式保存在磁盘上。

2.1.3、资源数据库

数据库数据存放在 jar 文件中,此类数据库都是只读的。

3、部署模式

3.1、嵌入模式

嵌入模式通过一个简单的单用户 Java 应用程序启动 Derby。在此模式下,Derby 与应用程序运行在同一个 Java 虚拟机(JVM)中。由于 Derby 由应用程序启动和停止,因此对最终用户几乎是不可见的,并且通常不需要管理。

JDBC 连接 Derby 根据不同的数据库类型有不同的写法。

3.1.1、内存数据库

jdbc:derby:memory:myDb

3.1.2、文件数据库

jdbc:derby:myDb

该方式会在当前目录下生成 Derby 的数据文件;还可以指定绝对目录,数据库文件将在目标目录下生成:

jdbc:derby:d:/temp/myDb

3.1.3、资源数据库

假设数据库 myDb 被打成 jar 文件 my.jar(jar cvf my.jar myDb),则访问该 jar 文件中的数据库有两种方式:

A、该 jar 文件已在 classpath 中

jdbc:derby:classpath:myDb

B、该 jar 文件不在 classpath 中

jdbc:derby:jar:(d:/temp/my.jar)myDb

3.2、服务器模式

服务器模式通过一个提供多用户连接的应用程序启动 Derby,以便通过网络访问 Derby 数据库。在此模式下,Derby 在托管服务器的 Java 虚拟机(JVM)中运行。应用程序从不同的 JVM 连接到 Derby 服务器以访问数据库。

JDBC 连接 Derby 根据不同的数据库类型有不同的写法。

3.2.1、内存数据库

jdbc:derby://localhost:1527/memory:myDb

3.2.2、文件数据库

jdbc:derby://localhost:1527/myDb

该方式会在 Derby 服务端当前目录下生成 Derby 的数据文件;还可以指定绝对目录,数据库文件将在目标目录下生成:

jdbc:derby://localhost:1527/d:/temp/myDb

3.2.3、资源数据库

A、数据库 jar 文件已在 Derby 服务的 classpath 中

jdbc:derby://localhost:1527/classpath:myDb

B、数据库 jar 文件不在 Derby 服务的 classpath 中

jdbc:derby://localhost:1527/jar:(d:/temp/my.jar)myDb

3.3、混合模式

可以在应用中通过 Java 代码来启动 HSQLDB 的服务,这样本地和远程就都可以访问数据库了。

NetworkServerControl server = new NetworkServerControl(InetAddress.getByName("0.0.0.0"), 1527);
server.start (null);

4、部署

4.1、嵌入和混合模式

引入相关依赖即可:

<!--嵌入模式需要-->
<dependency>
    <groupId>org.apache.derby</groupId>
    <artifactId>derby</artifactId>
    <version>10.14.2.0</version>
</dependency>
<!--作为客户端连接服务器需要-->
<dependency>
    <groupId>org.apache.derby</groupId>
    <artifactId>derbyclient</artifactId>
    <version>10.14.2.0</version>
</dependency>
<!--应用中启动 Derby 服务需要-->
<dependency>
    <groupId>org.apache.derby</groupId>
    <artifactId>derbynet</artifactId>
    <version>10.14.2.0</version>
</dependency>

4.2、服务器模式

官网(https://db.apache.org/derby/derby_downloads.html)下载部署包然后解压即可,这里下载 10.14.2.0 版本。解压后的部署包包含多个子目录:

  • demo 包含演示程序。
  • bin 包含执行工具和设置环境的脚本。
  • javadoc 包含从源代码注释生成的 API 文档。
  • docs 包含 Derby 文档。
  • lib 包含 Derby 的 jar 文件。
  • test 包含 Derby 的回归测试。

部署包中包含了一些有用的工具(命令),这些工具都快通过 /h 参数查看具体用法。

4.2.1、sysinfo

sysinfo 工具显示有关 Java 环境和 Derby 版本的信息。

D:\temp\db-derby-10.14.2.0-bin\bin>sysinfo.bat

4.2.2、ij

ij 工具是一个 JDBC 工具,你可以用它来运行脚本或对 Derby 数据库执行交互式查询。

D:\temp\db-derby-10.14.2.0-bin\bin>ij.bat
ij 版本 10.14
ij> connect 'jdbc:derby:myDb;create=true';
ij> show tables;
TABLE_SCHEM         |TABLE_NAME                    |REMARKS
------------------------------------------------------------------------
SYS                 |SYSALIASES                    |
SYS                 |SYSCHECKS                     |
SYS                 |SYSCOLPERMS                   |
SYS                 |SYSCOLUMNS                    |
SYS                 |SYSCONGLOMERATES              |
SYS                 |SYSCONSTRAINTS                |
SYS                 |SYSDEPENDS                    |
SYS                 |SYSFILES                      |
SYS                 |SYSFOREIGNKEYS                |
SYS                 |SYSKEYS                       |
SYS                 |SYSPERMS                      |
SYS                 |SYSROLES                      |
SYS                 |SYSROUTINEPERMS               |
SYS                 |SYSSCHEMAS                    |
SYS                 |SYSSEQUENCES                  |
SYS                 |SYSSTATEMENTS                 |
SYS                 |SYSSTATISTICS                 |
SYS                 |SYSTABLEPERMS                 |
SYS                 |SYSTABLES                     |
SYS                 |SYSTRIGGERS                   |
SYS                 |SYSUSERS                      |
SYS                 |SYSVIEWS                      |
SYSIBM              |SYSDUMMY1                     |

已选择 23 行
ij> select * from sys.systables;

4.2.3、dblook

dblook 是一个 DDL 生成工具,可以将数据库的全部或部分 DDL 转储到控制台或文件中。

D:\temp\db-derby-10.14.2.0-bin\bin>dblook.bat -d 'jdbc:derby:d:/temp/myDb' -o d:/temp/myDb.sql

4.2.4、NetworkServerControl

NetworkServerControl 可以用来启动或关闭 Derby 服务。

A、启动 Derby 服务

D:\temp\db-derby-10.14.2.0-bin\bin>NetworkServerControl.bat start -p 1527 -noSecurityManager
Fri Aug 23 11:26:23 CST 2024 : Apache Derby 网络服务器 - 10.14.2.0 - (1828579) 已启动并准备接受端口 1527 上的连接

B、关闭 Derby 服务

D:\temp\db-derby-10.14.2.0-bin\bin>NetworkServerControl.bat shutdown -p 1527
Fri Aug 23 11:28:56 CST 2024 : Apache Derby 网络服务器 - 10.14.2.0 - (1828579) 关闭

 

 

参考:https://db.apache.org/derby/manuals/index.html

 

标签:--,简介,数据库,Derby,jar,SYS,derby,myDb
From: https://www.cnblogs.com/wuyongyin/p/18362530

相关文章

  • 一个数组的全部内容复制到另外一个数组
    ucharInput_N_Valid_HL[4]="LLLL"; //错误ucharInput_N_Valid_HL[5]="LLLL"; //正确case4: EEPROM_Read(EEPROM_String_2,8,8); sprintf(segString,%s,EEPROM_String_2); //方法1:sprintf函数,将某个数组内容打印到另外一个数组(不推荐)sprintf(segString,&quo......
  • ssm毕设校园防诈科普系统程序+论文
    本系统(程序+源码)带文档lw万字以上 文末可获取一份本项目的java源码和数据库参考。系统程序文件列表开题报告内容一、研究背景随着社会的发展,电信网络诈骗日益猖獗,校园也成为了诈骗的高发区域。近年来,大学生遭遇诈骗的案例层出不穷,从常见的刷单返利、冒充电商物流客服到新......
  • 超大规模数据库集群保稳系列:数据库攻防演练建设实践15
     01背景1.1初识混沌工程首先我们先了解一下什么是混沌工程?简单而言,混沌工程是在系统上进行实验的技术手段,目的是建立对系统抵御生产环境中失控条件的能力以及信心。这主要体现在两个方面,从系统角度来讲,混沌工程可以提升我们架构的容错能力和韧性,降低故障发生率和复发率,提......
  • 超大规模数据库集群保稳系列:数据库攻防演练建设实践13
     01背景1.1初识混沌工程首先我们先了解一下什么是混沌工程?简单而言,混沌工程是在系统上进行实验的技术手段,目的是建立对系统抵御生产环境中失控条件的能力以及信心。这主要体现在两个方面,从系统角度来讲,混沌工程可以提升我们架构的容错能力和韧性,降低故障发生率和复发率,提......
  • 超大规模数据库集群保稳系列:数据库攻防演练建设实践8
     01背景1.1初识混沌工程首先我们先了解一下什么是混沌工程?简单而言,混沌工程是在系统上进行实验的技术手段,目的是建立对系统抵御生产环境中失控条件的能力以及信心。这主要体现在两个方面,从系统角度来讲,混沌工程可以提升我们架构的容错能力和韧性,降低故障发生率和复发率,提......
  • 超大规模数据库集群保稳系列:数据库攻防演练建设实践2
     01背景1.1初识混沌工程首先我们先了解一下什么是混沌工程?简单而言,混沌工程是在系统上进行实验的技术手段,目的是建立对系统抵御生产环境中失控条件的能力以及信心。这主要体现在两个方面,从系统角度来讲,混沌工程可以提升我们架构的容错能力和韧性,降低故障发生率和复发率,提......
  • STM32学习笔记(四)TIM定时中断、PWM的简单应用(舵机、直流电机)
    一、TIM简介定时器(Timer,简称TIM)是STM32中非常重要的外设之一,广泛应用于定时、计数、PWM输出、事件触发等多种场景。STM32提供了多个定时器,每个定时器的功能和性能有所不同,但基本原理类似。定时器的工作原理是通过不断计数来产生定时事件,计数器会在每个周期到达预设值时......
  • MyBatis 配置中的常见问题:解决 `Unknown DataSource property` 错误
    MyBatis配置中的常见问题:解决UnknownDataSourceproperty错误引言在使用MyBatis进行数据库操作时,配置文件的正确性至关重要。然而,在实际开发中,我们可能会遇到一些配置问题,比如UnknownDataSourceproperty错误。本文将详细分析这一问题的原因,并结合实际案例,帮助大家避......
  • 线段树进阶
    线段树分治(时间线段树)线段树分治是一种离线的算法,按时间分治。常用于处理每个操作有一定的生效时间(或者每个查询限制一段时间)的题目。其本质是钦定良好的顺序来得出答案,使得执行操作的次数最少。而对于具有类似思想的trick有:对于一些图论问题,可以将操作离线,然后对于每一个操......
  • HarmonyOS Next 中的 HAP、HAR、HSP 区别
    HarmonyOSNext中的HAP、HAR、HSP区别想要更加合理的开发一个企业级别的Harmony应用,那么就不得不提其中的HAP、HAR、HSP了。前言对于普通的用户来说,可能一个普通的应用就等于一个安装文件如安卓下的APK。但是对于Harmony应用开发工程师来讲,一个应用包含的内容仅仅不止......