三分鍾學會使用Derby數據庫


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的專欄



免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM