Derby数据库是一个纯用Java实现的内存数据库,属于Apache的一个开源项目。由于是用Java实现的,所以可以在任何平台上运行;另外一个特点是体积小,免安装,java1.6开始集成了derby数据库,位于jdk下面的db目录下.

  1. 环境变量配置

  • CLASSPATH =
    1
    2
    3
    4
    5
    ‪C:openSourcejdk1.8.0_162dblibderby.jar;
    ‪C:openSourcejdk1.8.0_162dblibderbyclient.jar;
    ‪C:openSourcejdk1.8.0_162dblibderbytool.jar;
    ‪C:openSourcejdk1.8.0_162dblibderbynet.jar;
    ‪C:openSourcejdk1.8.0_162dblibderbytools.jar;
  • PATH =
    1
    C:openSourcejdk1.8.0_162dbbin
  • 如果不想配置,也可以使用下面指令来简化你的使用
  • 在Derby数据库的/bin目录中提供了几个脚本用于设置classpath,以简化你手工在classpath中添加jar包的麻烦:

  • setEmbeddedCP。当使用内嵌模式来运行Derby时,可以使用该脚本来设置。该脚本将derby.jar和derbytools.jar添加到环境变量中;
    setNetworkServerCP。当使用网络模式来运行Derby时,用该脚本来设置Derby服务端的classpath变量。该脚本将derbynet.jar添加到环境变量中;
  • setNetworkClientCP。当使用网络模式来运行Derby时,用该脚本来设置Derby客户端的classpath变量。该脚本将derbyclient.jar和derbytools.jar添加到环境变量中。
    一般只有当你通过derbyrun.jar来运行Derby工具时才会使用这些脚本。

  1. Derby提供了三个工具脚本:

    将derby数据库的bin目录加入环境变量后,可以在命令行中使用下面的脚本

  • sysinfo
    使用sysinfo可以显示你的Java环境信息和Derby的版本信息。使用方法就是在命令行下直接输入:
    sysinfo.bat
  • dblook
    使用dblook可以将全部或者部分数据库的DDL定义导出到控制台或者文件中。使用方法:
    dblook.bat -d [Options]
  • ij
    使用ij工具来进行数据库交互,执行SQL脚本,如查询、增删改、创建表等等。在命令行下输入:
    ij.bat
    即可启动ij工具,然后就可以开始执行SQL脚本了。当要退出ij工具时,在命令行下输入
    exit;
    即可。

注意:命令行中使用derby,无论是服务(使用服务先启动数据库
)还是文件的连接方式都要行执行 ij命令,进入derby数据库;


  1. 命令行中使用derby:

  • 服务的方式(独立数据库)

    这种模式下,需要使用两个控制台窗口,一个用于启动Derby数据库服务端,另一个做为访问Derby数据库的客户端。
    可以通过DERBY数据库/bin目录下的==startNetworkServer.bat==来启动Derby数据库服务端,只需要在==命令行中输入==:
    ==startNetworkServer.bat==
    或者是在命令行中输入

    1
    java -jar  derbyrun.jar server start;

数据库就启动了,启动成功会在控制台输出如下信息:
已使用基本服务器安全策略安装了安全管理程序。
Apache Derby Network Server - 10.4.1.3 - (648739) 已启动并且已准备好 2008-09-06
00:38:12.540 GMT 时在端口 1527 上接受连接

  • 在命令行中输入ij,进入数据库
    1
    2
    3
    connect 'jdbc:derby://localhost:1527/db_name';
    或者是
    connect 'jdbc:derby://localhost:1527/db_name;user=root;password=root;create=true;';

user=root;password=root; 创建一个用户.

create=true 没有数据库的话,也创建一个


  1. 文件连接的方式(内嵌数据库):

  • 在在命令行中输入ij,进入数据库
  • 再输入以下命令(注意db_name可以是相对路径也可以是绝对路径)
    1
    connect 'jdbc:derby:db_name';

与服务端连接上后,就可以开始执行SQL脚本了,:

  • 如创建一个表格

    table firsttable(id int primary key, name varchar(20)); ```
    1
    2
    - 然后插入记录:
    ``` insert into firsttable values(1, ‘Hotpepper');
  • 也可以执行查询:

    * from firsttable; ```
    1
    2大专栏  三分钟学会使用Derby数据库an>
    - 也可以通过run命令来执行sql文件:
    ``` run 'E:/derby/demo/programs/toursdb/ToursDB_schema.sql';
  • 最后通过exit;来退出ij工具


  1. 在java中使用jdbc连接(独立数据库)

    注意derby的所有的驱动在lib目录下面

  • 先把derbycilent.jar导入项目,再buildpath一下

    java代码

    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    import java.sql.Connection;
    import java.sql.DriverManager;
    import java.sql.PreparedStatement;
    import java.sql.ResultSet;
    import java.sql.SQLException; public class Db {
    public static void main(String[] args) {
    try {
    // 创建实例
    Class.forName("org.apache.derby.jdbc.ClientDriver").newInstance();
    // 获得数据库连接
    Connection conn = DriverManager.getConnection("jdbc:derby://localhost:1527/firstdb");
    String sql = "select name from stu";
    PreparedStatement ps = conn.prepareStatement(sql);
    // 执行查询语句
    ResultSet rs = ps.executeQuery();
    while (rs.next()) {
    System.out.println(rs.getString("name"));
    } } catch (ClassNotFoundException e) {
    e.printStackTrace();
    } catch (SQLException e) { e.printStackTrace();
    } catch (InstantiationException e) { e.printStackTrace();
    } catch (IllegalAccessException e) { e.printStackTrace();
    }
    }
    }
  1. 也可以使用内镶数据库的连接方式连接jdbc(到最后加载驱动和Conncetion即可)

这儿的db_name可以是相对路径也可以是绝对路径,shutdown=true;用户在使用derby的内嵌数据库的时候有责任关闭数据库

  • 请将derby.jar加入项目的build path路径
1
2
Class.forName("org.apache.derby.jdbc.EmbeddedDriver").newInstance();
Connection conn = DriverManager.getConnection("jdbc:derby:db_name;shutdown=true);
Tips: 注意网络模式和内嵌模式的不同出在于:
  • 数据库连接URL的不同.(独立服务器模式是数据库库的名字,另外一个是数据库的路径)
  • 应用程序退出时无效关闭Derby数据库;(内嵌数据库必须关闭)
  • 数据库驱动的不同;

  • 关闭数据库
    1
    在命令行中执行  java -jar  derbyrun.jar server stop;

关于数据库的操作我在这儿就不说了,有需要学习的网友可以自己百度一下

  • [x] 参考

Derby net server doc

Derby 快速入门

gsls200808的专栏


三分钟学会使用Derby数据库的更多相关文章

  1. 三分钟学会@Autowired@Qualifier@Primary注解

    三分钟学会@Autowired@Qualifier@Primary注解 2018.10.08 20:24 154浏览 今天主要简单的跟大家介绍一下spring自动装配相关的@Autowired,@Qu ...

  2. [转]三分钟学会.NET Core Jwt 策略授权认证

    [转]三分钟学会.NET Core Jwt 策略授权认证 一.前言# 大家好我又回来了,前几天讲过一个关于Jwt的身份验证最简单的案例,但是功能还是不够强大,不适用于真正的项目,是的,在真正面对复杂而 ...

  3. 中小研发团队架构实践之生产环境诊断工具WinDbg 三分钟学会.NET微服务之Polly 使用.Net Core+IView+Vue集成上传图片功能 Fiddler原理~知多少? ABP框架(asp.net core 2.X+Vue)模板项目学习之路(一) C#程序中设置全局代理(Global Proxy) WCF 4.0 使用说明 如何在IIS上发布,并能正常访问

    中小研发团队架构实践之生产环境诊断工具WinDbg 生产环境偶尔会出现一些异常问题,WinDbg或GDB是解决此类问题的利器.调试工具WinDbg如同医生的听诊器,是系统生病时做问题诊断的逆向分析工具 ...

  4. [计划任务 - Linux]三分钟学会cron

    cron——计划任务,是任务在约定的时间执行已经计划好的工作,是一个linux下的定时执行工具,可以在无需人工干预的情况下运行作业. 也就是说cron只适合于linux系统,用windows电脑的同学 ...

  5. 三分钟学会.NET微服务之Polly

    熔断降级是一个非常重要的概念,我们先说一下什么是熔断降级,咱们都知道服务发现,一个有问题的服务器没来得急注销过一会就崩溃掉了,那么我们的请求就有可能访问一个已经崩溃的服务器,那么就会请求失败,因为已经 ...

  6. 小兔Java教程 - 三分钟学会Java文件上传

    今天群里正好有人问起了Java文件上传的事情,本来这是Java里面的知识点,而我目前最主要的精力还是放在了JS的部分.不过反正也不麻烦,我就专门开一贴来聊聊Java文件上传的基本实现方法吧. 话不多说 ...

  7. 三分钟学会funsioncharts

    由于项目需求需要做一个报表,选择FusionCharts作为工具使用.由于以前没有接触过报表,网上也没有比较详细的fusionCharts教程,所以决定好好研究FusionCharts,同时做一个比较 ...

  8. 三分钟学会缓存工具DiskLruCache

    DiskLruCache是一个十分好用的android缓存工具,我们可以从GitHub上下载其源码:https://github.com/JakeWharton/DiskLruCache DiskLr ...

  9. android一分钟学会可视化操作数据库(无需ROOT)

    我刚开始弄android数据库的时候,想查询一些数据,以验证程序逻辑,发现很多方案都需要ROOT. 即便有不需要ROOT的方案,命令行交互也比较麻烦. 今天跟大家分享一下这个点点鼠标就能实现的功能. ...

随机推荐

  1. UVALive 2678 利用序列的前缀来减少时间复杂度

    题意很简单,在一串正整数序列中找一个连续的子序列使该序列和大于等于一个已知量S,但要求序列长度最短,通常喜欢暴力枚举 这个题目跟大白书之前的一个题目很像,在数列A中 求 Ai-Aj最大 并且 i< ...

  2. 黑马oracle_day02:04.oracle对象&&05.oracle编程(a)

    01.oracle体系结构 02.oracle的基本操作 03.oracle的查询 04.oracle对象&&05.oracle编程(a) 05.oracle编程(b) 04.orac ...

  3. python模块——datetime

    datetime模块是python自带对时间的操作,其常用的四大类分别是date.time.datetime.timedelta.下面分别讲解下这四大类中常用的方法及其属性. date类 date类的 ...

  4. python——print函数

    .print()函数概述 print() 方法用于打印输出,是python中最常见的一个函数. 该函数的语法如下: print(*objects, sep=' ', end='\n', file=sy ...

  5. zabbix3.4--监控TCP十一种状态

    1.客户端自定义key[root@web01 /etc/zabbix/zabbix_agentd.d]#vim iotps.conf UserParameter=TCP_STATUS_ESTABLIS ...

  6. hdu2896&&3065

    题:http://acm.hdu.edu.cn/showproblem.php?pid=2896 分析:ac自动机模板 注意细节,1.128个ascii码都要: 2.只要关键码含有只输出一个编号就行 ...

  7. Xcode7 HTTP请求问题

    问题: “Application Transport Security has blocked a cleartext HTTP (http://) resource load since it is ...

  8. 微服务监控druid sql

    参考该文档 保存druid的监控记录 把日志保存的关系数据数据库(mysql,oracle等) 或者nosql数据库(redis,芒果db等) 保存的时候可以增加微服务名称标识好知道是哪个微服务的sq ...

  9. 2019-2020-1 20199324《Linux内核原理与分析》第一周作业

    1.问题:使用banner输出图形字符为什么都是大写? 2.实验二:基本概念及操作 作业:命令toilet和figlet的使用 使用如下命令安装 $ sudo apt-get update $ sud ...

  10. HttpClient的userAgent和refer问题

    HttpClient本质是模拟浏览器去请求网址,获取请求response. 为了更真实的模拟浏览器,不被限制,需要设置一些请求header. 如果是爬虫的话,老虑的会更多些,爬取网站在HttpClie ...