<ruby id="bdb3f"></ruby>

    <p id="bdb3f"><cite id="bdb3f"></cite></p>

      <p id="bdb3f"><cite id="bdb3f"><th id="bdb3f"></th></cite></p><p id="bdb3f"></p>
        <p id="bdb3f"><cite id="bdb3f"></cite></p>

          <pre id="bdb3f"></pre>
          <pre id="bdb3f"><del id="bdb3f"><thead id="bdb3f"></thead></del></pre>

          <ruby id="bdb3f"><mark id="bdb3f"></mark></ruby><ruby id="bdb3f"></ruby>
          <pre id="bdb3f"><pre id="bdb3f"><mark id="bdb3f"></mark></pre></pre><output id="bdb3f"></output><p id="bdb3f"></p><p id="bdb3f"></p>

          <pre id="bdb3f"><del id="bdb3f"><progress id="bdb3f"></progress></del></pre>

                <ruby id="bdb3f"></ruby>

                合規國際互聯網加速 OSASE為企業客戶提供高速穩定SD-WAN國際加速解決方案。 廣告
                # Derby 簡介 > 原文: [http://zetcode.com/db/apachederbytutorial/derby/](http://zetcode.com/db/apachederbytutorial/derby/) 在本章中,我們介紹了 Derby 的基本概念和定義。 _Derby_ 是用 Java 編寫的關系數據庫管理系統。 它實現了 SQL-92 核心子集以及一些 SQL-99 功能。 它使用 IBM DB2 SQL 語法。 Derby 的占用空間很小,約為 2MB。 它具有事務支持。 Derby 使用的數據庫格式是可移植的且與平臺無關。 ## 部署選項 Derby 可以兩種模式運行:嵌入式或客戶端服務器。 在嵌入式模式中,Derby 引擎在應用的 Java 虛擬機中運行。 該應用直接且排他地訪問數據庫。 沒有其他應用可以同時訪問數據庫。 連接到數據庫之前,無需設置 Derby 服務器。 當我們加載嵌入式驅動程序時,將啟動 Derby 引擎。 在客戶端-服務器模式下,Derby 提供跨網絡的多用戶連接。 Derby 引擎在服務器的 JVM 中運行。 其他應用可以從不同的 JVM 連接到數據庫。 連接到數據庫之前,我們必須啟動數據庫服務器。 這類似于其他 RDBMS,例如 Oracle 或 MySQL。 ## Derby 系統 Derby 系統由 Derby 引擎及其環境的實例組成。 它包括系統目錄,數據庫和系統范圍的配置。 每個數據庫位于系統目錄的子目錄中,該子目錄的名稱與數據庫相同。 此外,它還有一個錯誤日志文件和一個可選的`derby.properties`文件。 Derby 將信息和錯誤消息寫入默認名稱為`derby.log`的日志文件中。 該屬性文件包含特定于 Derby 系統的配置數據和參數。 Derby 系統不是持久性的。 我們必須在每次啟動時提供系統的位置。 通過`derby.system.home`屬性指定 Derby 系統。 如果屬性中指定的目錄不存在,則 Derby 會自動創建它。 如果我們未明確指定屬性,則使用當前目錄。 當前目錄是 JVM `user.dir`屬性的值。 建議始終明確指定`derby.system.home`。 ```java -Dderby.system.home=/home/janbodnar/.derby ``` 可以在命令行,環境變量,對話框(如果使用 IDE 的情況下)或`derby.properties`文件中設置屬性。 ## Derby 屬性 `derby.properties`是 Derby 系統的配置文件。 它是一個簡單的文本文件,使我們能夠配置整個 Derby 系統,特定的數據庫或企業集團。 企業集團是 Derby 中的表或索引。 我們可以配置幾個選項,例如用戶授權,要啟動的數據庫,日志文件的名稱,系統目錄的位置。 `derby.properties`不會自動創建; 如果要使用它,我們必須創建該文件。 ## 啟動和停止 Derby 數據庫 在嵌入式模式下,數據庫在應用首次建立連接時啟動。 當 Derby 系統以`derby.system.bootAll`屬性開頭時,可以將其配置為引導所有可用的數據庫。 數據庫啟動后,將消息寫入`derby.log`文件。 通過在連接 URL 中指定`shutdown=true`屬性來關閉數據庫。 我們可以關閉數據庫或整個 Derby 系統。 ```java DriverManager.getConnection("jdbc:derby:testdb;shutdown=true"); DriverManager.getConnection("jdbc:derby:;shutdown=true"); ``` 第一個 JDBC 調用將關閉`testdb`數據庫。 第二個調用結束整個 Derby 系統。 請注意,系統關閉時會彈出`SQLExpection`。 此異常應以編程方式處理。 在關閉數據庫或系統之前,我們還應該關閉所有現有資源。 在客戶機/服務器模式下,Derby 服務器以`startNetworkServer`腳本啟動,以`stopNetworkServer`腳本結束。 它們位于安裝目錄的`bin`子目錄中。 ## JAR 文件 在安裝目錄的`lib`子目錄中,我們可以找到幾個庫。 每個 JAR 文件都具有特定功能。 ```java $ ls lib derbyclient.jar derbyLocale_it.jar derbyLocale_zh_TW.jar derby.jar derbyLocale_ja_JP.jar derbynet.jar derbyLocale_cs.jar derbyLocale_ko_KR.jar derbyoptionaltools.jar derbyLocale_de_DE.jar derbyLocale_pl.jar derbyrun.jar derbyLocale_es.jar derbyLocale_pt_BR.jar derbytools.jar derbyLocale_fr.jar derbyLocale_ru.jar derby.war derbyLocale_hu.jar derbyLocale_zh_CN.jar ``` `derby.jar`是用于嵌入式數據庫的庫。 我們需要在嵌入式應用的類路徑中具有此 JAR 文件。 在客戶端-服務器模式下,該庫必須在服務器上。 `derbynet.jar`用于啟動 Derby 網絡服務器。 連接到 Derby Network Server 的客戶端使用`derbyclient.jar`。 `derbytools.jar`與 Derby 工具一起使用。 `derbyrun.jar`文件是一個特殊的 jar 文件,可簡化我們調用 Derby 工具和網絡服務器的方式。 最后,還有一些語言環境庫。 它們用于提供翻譯后的消息。 例如,`derbyLocale_cs.jar`提供捷克信息。 ## Derby 模式 在數據庫理論中,模式是數據庫的結構。 用正式語言(SQL)描述。 它是指數據的組織。 數據庫模式的正式定義是一組公式,稱為對數據庫施加的完整性約束。 在 Derby 中,數據庫模式的含義較窄。 它是用于對對象進行邏輯分組的容器。 它類似于 Java 包或 C++ 名稱空間。 Derby 數據庫可能具有多個架構。 我們可以創建兩個具有相同名稱的表,前提是它們被放置在兩個不同的模式中。 Derby 的默認架構為 APP。 如果我們不提供任何模式,則會將數據庫對象分配給該默認模式。 使用`CREATE SCHEMA`語句在 Derby 中創建模式。 如果我們連接到數據庫,則在連接 URL 中提供的用戶名將成為連接的當前模式。 所有數據庫對象都將在此架構內創建。 可以使用`SET SCHEMA`語句更改當前模式。 還有一個稱為 SYS 的內置模式,用于隔離系統表。 Derby 有一個名為`dblook`的工具,可以轉儲數據庫及其架構。 該工具的輸出是 DDL(數據定義語言)對數據庫的形式化描述。 ## 連接網址 加載驅動程序后,將創建與數據庫的連接。 連接是與數據庫的會話。 在工作結束時,與數據庫的連接已關閉。 為了建立連接,我們調用`DriverManager`類的`getConnection()`方法。 連接 URL 指定連接的特征。 ```java jdbc:derby:[subsubprotocol:][databaseName][;attribute=value]* ``` 上面是 Derby 數據庫連接 URL 的語法。 默認子協議為`directory:`,通常會省略。 當指定`memory:`子協議時,我們只能在內存中使用數據庫。 `databaseName`是我們要創建和/或連接到的數據庫的名稱。 我們可以在連接 URL 中使用幾個屬性。 我們可以使用屬性來創建數據庫,并使用用戶名和密碼連接到受保護的數據庫。 此外,我們使用連接屬性來關閉數據庫或 Derby 系統,加密數據或從備份還原數據庫。 ```java jdbc:derby:testdb jdbc:derby://localhost:1527/testdb ``` 我們使用不同的連接字符串來連接嵌入式系統和客戶端-服務器 Derby 系統。 第一個連接字符串連接到嵌入式數據庫,第二個連接字符串連接到客戶服務器數據庫。 Derby 的默認端口是 1527。 ```java jdbc:derby:testdb;create=true jdbc:derby:testdb;shutdown=true jdbc:derby:memory:testdb ``` 我們還有另外三個連接字符串。 第一個連接字符串創建`testdb`數據庫。 第二個關閉`testdb`數據庫。 第三個連接到在內存中創建的`testdb`。 ## SQL 文件 在以下兩個 SQL 文件`cars.sql`和`authors_books.sql`中,我們創建了三個表,將在本教程中使用它們。 `cars.sql` ```java -- SQL for the CARS table SET SCHEMA USER12; CREATE TABLE CARS(ID BIGINT NOT NULL PRIMARY KEY GENERATED ALWAYS AS IDENTITY (START WITH 1, INCREMENT BY 1), NAME VARCHAR(30), PRICE INT); INSERT INTO CARS(Name, Price) VALUES('Audi', 52642); INSERT INTO CARS(Name, Price) VALUES('Mercedes', 57127); INSERT INTO CARS(Name, Price) VALUES('Skoda', 9000); INSERT INTO CARS(Name, Price) VALUES('Volvo', 29000); INSERT INTO CARS(Name, Price) VALUES('Bentley', 350000); INSERT INTO CARS(Name, Price) VALUES('Citroen', 21000); INSERT INTO CARS(Name, Price) VALUES('Hummer', 41400); INSERT INTO CARS(Name, Price) VALUES('Volkswagen', 21600); ``` `cars.sql`文件創建`CARS`表。 `authors_books.sql` ```java -- SQL for AUTHORS and BOOKS tables SET SCHEMA USER12; CREATE TABLE AUTHORS(ID BIGINT PRIMARY KEY GENERATED ALWAYS AS IDENTITY (START WITH 1, INCREMENT BY 1), NAME VARCHAR(25)); CREATE TABLE BOOKS(ID BIGINT PRIMARY KEY GENERATED ALWAYS AS IDENTITY (START WITH 1, INCREMENT BY 1), AUTHOR_ID BIGINT, TITLE VARCHAR(150), FOREIGN KEY(AUTHOR_ID) REFERENCES AUTHORS(ID)); INSERT INTO AUTHORS(NAME) VALUES('Jack London'); INSERT INTO AUTHORS(NAME) VALUES('Honore de Balzac'); INSERT INTO AUTHORS(NAME) VALUES('Lion Feuchtwanger'); INSERT INTO AUTHORS(NAME) VALUES('Emile Zola'); INSERT INTO AUTHORS(NAME) VALUES('Truman Capote'); INSERT INTO BOOKS(AUTHOR_ID, TITLE) VALUES(1, 'Call of the Wild'); INSERT INTO BOOKS(AUTHOR_ID, TITLE) VALUES(1, 'Martin Eden'); INSERT INTO BOOKS(AUTHOR_ID, TITLE) VALUES(2, 'Old Goriot'); INSERT INTO BOOKS(AUTHOR_ID, TITLE) VALUES(2, 'Cousin Bette'); INSERT INTO BOOKS(AUTHOR_ID, TITLE) VALUES(3, 'Jew Suess'); INSERT INTO BOOKS(AUTHOR_ID, TITLE) VALUES(4, 'Nana'); INSERT INTO BOOKS(AUTHOR_ID, TITLE) VALUES(4, 'The Belly of Paris'); INSERT INTO BOOKS(AUTHOR_ID, TITLE) VALUES(5, 'In Cold blood'); INSERT INTO BOOKS(AUTHOR_ID, TITLE) VALUES(5, 'Breakfast at Tiffany'); ``` `authors_books.sql`文件創建兩個表:`AUTHORS`和`BOOKS`。 ## 數據來源 以下材料用于創建本教程:Derby 開發者指南,Derby 服務器和管理指南,Derby 入門,Derby 工具和工具指南以及 Derby 參考手冊。 在本章中,我們介紹了 Derby 數據庫的基本概念。
                  <ruby id="bdb3f"></ruby>

                  <p id="bdb3f"><cite id="bdb3f"></cite></p>

                    <p id="bdb3f"><cite id="bdb3f"><th id="bdb3f"></th></cite></p><p id="bdb3f"></p>
                      <p id="bdb3f"><cite id="bdb3f"></cite></p>

                        <pre id="bdb3f"></pre>
                        <pre id="bdb3f"><del id="bdb3f"><thead id="bdb3f"></thead></del></pre>

                        <ruby id="bdb3f"><mark id="bdb3f"></mark></ruby><ruby id="bdb3f"></ruby>
                        <pre id="bdb3f"><pre id="bdb3f"><mark id="bdb3f"></mark></pre></pre><output id="bdb3f"></output><p id="bdb3f"></p><p id="bdb3f"></p>

                        <pre id="bdb3f"><del id="bdb3f"><progress id="bdb3f"></progress></del></pre>

                              <ruby id="bdb3f"></ruby>

                              哎呀哎呀视频在线观看