使用 Java DB (Derby) 数据库
使用 Java DB (Derby) 數據庫
https://netbeans.org/kb/docs/ide/java-db_zh_CN.html
本文檔說明了如何在 NetBeans IDE 中設置與 Java DB 數據庫的連接。在建立連接之后,即可開始在 IDE 中使用該數據庫,您可以執行的操作包括創建表、用數據填充表、運行 SQL 語句和查詢等。
Java DB 數據庫是 Sun 支持的 Apache Derby 版本。Java DB 是完全事務型、安全且基于標準的數據庫服務器,它全部采用 Java 編寫,并且完全支持 SQL、JDBC API 和 Java EE 技術。Java DB 數據庫與 GlassFish 應用服務器打包在一起,也包含在 JDK 6 中。有關 Java DB 數據庫的詳細信息,請查閱正式文檔。
目錄
- 配置數據庫
- 在 NetBeans IDE 中注冊數據庫
- 啟動服務器并創建數據庫
- 連接到數據庫
- 創建表
- 添加表數據
- 刪除表
- 使用外部 SQL 腳本
- 重新創建來自其他數據庫的表
- 另請參見
要學習本教程,您需要具備以下軟件和資源。
| 軟件或資源 | 要求的版本 |
|---|---|
| NetBeans IDE | 7.2、7.3、7.4、8.0、Java EE |
| Java 開發工具包 (JDK) | 版本 7 或 8 |
| Java DB | 版本 10.4.x、10.5.x |
注:
- Java DB 是在安裝 JDK 7 或 JDK 8 時安裝的(在 Mac OS X 上除外)。如果使用的是 Mac OS X,則可以手動下載并安裝 Java DB,也可以使用通過 Java EE 版的 NetBeans IDE 安裝程序安裝的 Java DB。
配置數據庫
如果您在 NetBeans IDE 安裝中注冊了 GlassFish Server,則將自動注冊 Java DB。因此,可以向下跳轉至啟動服務器并創建數據庫。
如果您單獨下載了 GlassFish Server,并需要獲取有關在 NetBeans IDE 中對其進行注冊的幫助,請參見 IDE 的“幫助目錄”(F1 鍵)中的注冊 GlassFish Server 實例。
如果僅下載了 Java DB 本身,請執行以下步驟。
- 運行自解壓文件。將在與該文件相同的位置創建一個名為 “javadb” 的文件夾。如果僅下載了 Java DB,并且希望將該數據庫服務器放在與其解壓縮位置不同的位置中,現在應重新對其定位。
- 在系統上,創建一個新目錄,作為數據庫服務器的各實例的主目錄。例如,可以在 Java DB 根目錄 (javadb) 或其他任意位置創建此文件夾。
在繼續執行下一步操作之前,應了解 Java DB 根目錄的各個組成部分,這一點很重要:
- demo 子目錄包含演示程序。
- bin 子目錄包含用于執行實用程序和設置環境的腳本。
- javadoc 子目錄包含通過源代碼注釋生成的 API 文檔。
- docs 子目錄包含 Java DB 文檔。
- lib 子目錄包含 Java DB jar 文件。
在 NetBeans IDE 中注冊數據庫
配置了數據庫之后,執行以下步驟在 IDE 中注冊 Java DB。
- 在 “Services”(服務)窗口中,右鍵單擊 “Java DB Database”(Java DB 數據庫)節點,然后選擇 “Properties”(屬性),以打開 “Java DB Settings”(Java DB 設置)對話框。
- 在 “Java DB Installation”(Java DB 安裝)文本字段中,輸入在上一步中指定的 Java DB 根目錄 (javadb) 的路徑。
- 對于 “Database Location”(數據庫位置),請使用默認位置(如果已提供位置)。單擊 “OK”(確定)。
例如,在 Windows 計算機上,默認位置可能類似于 C:\Documents and Settings\username\.netbeans-derby。
注:如果 “Database Location”(數據庫位置)字段為空,將需要設置數據庫所在目錄的路徑。將需要為數據庫創建目錄(如果不存在)。
啟動服務器并創建數據庫
在 “Services”(服務)窗口中右鍵單擊 “Java DB” 節點時,將顯示 Java DB 數據庫菜單選項。通過這些上下文菜單項,可以啟動和停止數據庫服務器、創建新的數據庫實例,以及在 IDE 中注冊數據庫服務器(如以上步驟所示)。要啟動數據庫服務器,請執行以下操作:
- 在 “Services”(服務)窗口中,右鍵單擊 “Java DB” 節點,然后選擇 “Start Server”(啟動服務器)。請注意 “Output”(輸出)窗口中的以下輸出內容,該內容指示服務器已經啟動:
- 右鍵單擊 “Java DB” 節點,然后選擇 “Create Database”(創建數據庫),以打開 “Create Java DB Database”(創建 Java DB 數據庫)對話框。
- 鍵入 contact 作為數據庫名稱。
- 鍵入 nbuser 作為用戶名和口令。單擊 “OK”(確定)。
注:“Database Location”(數據庫位置)是從 GlassFish 安裝 Java DB 期間設置的默認位置。如果單獨安裝了 Java DB,則此位置可能會有所不同。
在創建數據庫之后,如果在 “Services”(服務)窗口中展開 “Databases”(數據庫)節點,您可以看到 IDE 已創建數據庫連接,并且該數據庫已添加到 “Java DB” 節點下的列表中。
連接到數據庫
到目前為止,已在 IDE 中成功啟動了數據庫服務器并創建了一個名為 contact 的數據庫實例。在 IDE 的 “Services”(服務)窗口中,可以對數據庫結構執行以下常見任務。
- 創建、刪除和修改表
- 用數據填充表
- 查看表格數據
- 執行 SQL 語句和查詢
要開始使用 contact 數據庫,需要創建到該數據庫的連接。要連接至 contact 數據庫,請執行以下步驟。
- 在 “Services”(服務)窗口中展開 “Databases”(數據庫)節點,然后找到新數據庫和數據庫連接節點。
數據庫連接節點 () 顯示在 “Databases”(數據庫)節點下。數據庫名稱顯示在 “Java DB” 節點下。
注:您還將看到作為默認數據庫方案的
sample [app on APP]數據庫連接。 -
右鍵單擊 contact 數據庫連接節點 (jdbc:derby://localhost:1527/contact [nbuser on NBUSER]),然后選擇 “Connect”(連接)。
“connection node”(連接節點)圖標將完全顯示出來 (),這表示連接成功。
- 為數據庫創建適當的顯示名稱,方法是右鍵單擊數據庫連接節點 (jdbc:derby://localhost:1527/contact [nbuser on NBUSER]),然后選擇 “Rename”(重命名)。在文本字段中鍵入 Contact DB,然后單擊 “OK”(確定)。
創建表
剛創建的 contact 數據庫當前為空。該數據庫尚未包含任何表或數據。在 NetBeans IDE 中,可以通過下列任一方法添加數據庫表:使用 “Create Table”(創建表)對話框,或輸入 SQL 語句并從 SQL 編輯器中直接運行該語句。要了解這兩種方法的具體操作步驟,請參見以下部分:
- 使用 “Create Table”(創建表)對話框
- 使用 SQL 編輯器
使用 “Create Table”(創建表)對話框
-
展開 Contact DB 連接節點,您會看到其中有若干方案子節點。app 方案是適用于本教程的唯一方案。右鍵單擊 APP 節點,然后選擇 “Set as Default Schema.”(設置為默認方案)。
- 展開 APP 節點,請注意,該節點下面有三個子文件夾:”Tables”(表)、”Views”(視圖)和 “Procedures”(過程)。右鍵單擊 “Tables”(表)節點,然后選擇 “Create Table”(創建表)以打開 “Create Table”(創建表)對話框。
- 在 “Table Name”(表名稱)文本字段中,鍵入 FRIENDS。
- 單擊 “Add Column”(添加列)。隨即出現 “Add Column”(添加列)對話框。
- 在列的 “Name”(名稱)中,輸入 id。對于數據 “Type”(類型),從下拉列表中選擇 INTEGER。
- 在 “Constraints”(約束)下,選中 “Primary Key”(主鍵)復選框以將此列指定為表的主鍵。關系數據庫中的所有表都必須包含主鍵。請注意,在選中 “Primary Key”(主鍵)復選框時,還將會自動選中 “Index”(索引)和 “Unique”(唯一)復選框,而 “Null”(空值)復選框則會取消選中。這是因為主鍵用于標識數據庫中的唯一行,并且默認情況下用作表索引。由于必須標識所有行,因此主鍵不能包含空值。
- 接下來,重復執行此過程,以便指定下表中所示的字段:
-
Key(鍵) Index(索引) Null(空值) Unique(唯一) Column Name(列名) Data Type(數據類型) Size(大小) [選中] [選中] [選中] id INTEGER 0 [選中] firstName VARCHAR 20 [選中] lastName VARCHAR 20 [選中] nickName VARCHAR 30 [選中] friendSince DATE 0 [選中] email VARCHAR 60 您將創建一個名為 FRIENDS 的表,其中為每條聯系人記錄包含以下數據:
- 名字
- 姓氏
- 昵稱
- 交友開始日期
- 電子郵件地址
-
在確保 “Create Table”(創建表)對話框包含與上圖所示相同的內容后,單擊 “OK”(確定)。IDE 會在數據庫中生成 FRIENDS 表,并且您可以看到 “Tables”(表)節點下顯示一個新的 FRIENDS 表節點 ()。在表節點下將列出從主鍵 () 開始的各個列 (字段)。
使用 SQL 編輯器:
- 在 “Service”(服務)窗口中,右鍵單擊 Contact DB 連接節點或該節點下的 “Tables”(表)節點,然后選擇 “Execute Command”(執行命令)。會在 SQL 編輯器的主窗口中打開一個空畫布。
- 在 SQL 編輯器中輸入以下查詢。這是將要創建的 COLLEAGUES 表的表定義:
CREATE TABLE "COLLEAGUES" ( "ID" INTEGER not null primary key, "FIRSTNAME" VARCHAR(30), "LASTNAME" VARCHAR(30), "TITLE" VARCHAR(10), "DEPARTMENT" VARCHAR(20), "EMAIL" VARCHAR(60));
請注:SQL 編輯器中形成的語句和查詢將以結構化查詢語言進行解析。SQL 遵循嚴格的語法規則,在 IDE 的編輯器中工作時應先熟悉一下這些規則。根據不同的數據庫管理系統,SQL 語法也會有所不同。有關詳細的準則,請參見《JavaDB 參考手冊》。
- 單擊編輯器頂部任務欄中的 “Run SQL”(運行 SQL)() 按鈕(Ctrl-Shift-E 組合鍵)以執行查詢。在 “Output”(輸出)窗口(Ctrl-4 組合鍵)中,將顯示一條消息,指示已成功執行該語句。
- 要驗證更改,請在 “Services”(服務)窗口中右鍵單擊 Contact DB 連接節點,然后選擇 “Refresh”(刷新)。此操作會將運行時 UI 組件更新為指定數據庫的當前狀態。當從 NetBeans IDE 中的 SQL 編輯器運行查詢時,必須執行此步驟。您會看到,現在新的 COLLEAGUES 表節點 () 顯示在 “Services”(服務)窗口中的 “Tables”(表)下。
添加表數據
現在,您已在 contact 數據庫中創建了一個或多個表,接下來可以開始用數據填充表。您可以使用多種方法向表中添加記錄。
- 在 SQL 編輯器中編寫 SQL 句,為表方案中的每個字段提供值。
- 使用 SQL 編輯器將記錄添加到表中。
- 使用外部 SQL 腳本將記錄導入到表中。
閱讀下節,了解如何使用用數據填充 FRIENDS 表的所有方法。
運行 SQL 語句
- 在 “Services”(服務)窗口中展開 Contact DB 節點下的 “Tables”(表),右鍵單擊 FRIENDS 表,然后選擇 “Execute Command”(執行命令)以打開 “SQL Editor”(SQL 編輯器)窗口。
- 在 SQL 編輯器中,輸入以下語句。
INSERT INTO APP.FRIENDS VALUES (1,'Theodore','Bagwell','T-Bag','2004-12-25','tbag@foxriver.com')
鍵入時可以使用 SQL 編輯器代碼完成。
- 在 SQL 編輯器中單擊鼠標右鍵,然后選擇 “Run Statement”(運行語句)。”Output”(輸出)窗口將顯示一條消息,指示已成功執行該語句。
- 要驗證是否已將新記錄添加到 FRIENDS 表中,請在 “Services”(服務)窗口中右鍵單擊 FRIENDS 表節點,然后選擇 “View Data”(查看數據)。
選擇 “View Data”(查看數據)時,在 SQL 編輯器的上方窗格中自動生成一個查詢,用于選擇表中的所有數據。在 SQL 編輯器的下方窗格中顯示該語句的結果。在這種情況下,FRIENDS 表將顯示在下方窗格中。請注意,已添加了一個新行,其中包含剛通過 SQL 語句提供的數據。
使用 SQL 編輯器
- 右鍵單擊 FRIENDS 表節點并選擇 “View Data”(查看數據)(如果在上一部分的最后一步中沒有執行此操作)。
- 單擊 “Insert Record”(插入記錄)(Alt-I) 按鈕以添加一行。
即會顯示 “Insert Record”(插入記錄)對話框。 - 單擊每個單元并輸入記錄。注意,對于“日期”數據類型的單元,可以從日歷中選擇一個日期。完成后單擊 “OK”(確定)。
在 SQL 編輯器中,可以通過單擊行表頭對結果進行排序、修改和刪除現有記錄,并查看編輯器中正在執行操作的 SQL 腳本(通過彈出式菜單顯示 SQL 腳本命令)。
刪除表
在下一步中,將使用外部 SQL 腳本創建一個新的 COLLEAGUES 表。但是,在上文的使用 SQL 編輯器部分中剛創建了一個 COLLEAGUES 表。要確保 SQL 腳本確實創建一個新表,現在可以刪除已創建的 COLLEAGUES 表。要刪除數據庫表,請執行以下步驟。
- 在“服務”窗口中展開數據庫連接節點下的“表”節點。
- 右鍵單擊要刪除的表,然后選擇“刪除”。
使用外部 SQL 腳本
從外部 SQL 腳本中發出命令是管理數據庫的一種常用方式。您可能已在其他位置創建了 SQL 腳本,并希望將其導入到 NetBeans IDE 中,以對指定的數據庫運行該腳本。
在本練習中,該腳本將創建一個名為 COLLEAGUES 的新表,并使用數據填充它。執行以下步驟以在 contact 數據庫中運行該腳本。
- 將 colleagues.sql 下載到本地系統
- 從 IDE 的主菜單中選擇 “File”(文件)> “Open”(打開)。在文件瀏覽器中,導航至 colleagues.sql 文件的保存位置,然后單擊 “Open”(打開)。將自動在 SQL 編輯器中打開該腳本。
或者,也可以復制 colleagues.sql 的內容,打開 SQL 編輯器,然后將該文件的內容粘貼到 SQL 編輯器。
- 確保從編輯器頂部工具欄的 “Connection”(連接)下拉框中選擇了連接到 Contact DB。
- 單擊 “SQL Editor”(SQL 編輯器)任務欄中的 “Run SQL”(運行 SQL)() 按鈕。將對選定的數據庫執行該腳本,并在 “Output”(輸出)窗口中生成任何反饋。
- 要驗證更改,請在 “Services”(服務)窗口中右鍵單擊 Contact DB 連接節點,然后選擇 “Refresh”(刷新)。請注意,在 “Services”(服務)窗口中的 contact 下面將顯示通過 SQL 腳本創建的新 COLLEAGUES 表的表節點。
- 要查看新表中包含的數據,請右鍵單擊 COLLEAGUES 表并選擇 “View Data”(查看數據)。通過這種方法,還可以將表格數據與 SQL 腳本中包含的數據進行比較,以查看它們是否匹配。
重新創建來自其他數據庫的表
如果您有一個來自其他數據庫的表,并希望通過 NetBeans IDE 在所使用的數據庫中重新創建該表,IDE 為此提供了非常方便的工具。首先,需要在 IDE 中注冊第二個數據庫,其過程與本教程開始部分描述的過程類似。就本教程而言,請使用與 Java DB 一起打包的 sample 數據庫。此過程實質上分兩部分執行:首先“抓取”選定表的表定義,然后在選擇的數據庫中重新創建該表,具體操作如下所示:
- 連接至 sample 數據庫,方法是:在 “Services”(服務)窗口中右鍵單擊 “Databases”(數據庫)節點下的連接節點,然后選擇 “Connect”(連接)(用戶名和口令分別為 app)。
-
展開 sample 數據庫連接下的 “Tables”(表)節點,右鍵單擊 CUSTOMER 表節點,然后選擇 “Grab Structure”(抓取結構)。
- 在打開的 “Grab Table”(抓取表)對話框中,指定計算機上的某一位置,以保存將要創建的抓取文件。單擊 “Save”(保存)。
抓取文件記錄選定表的定義。
- 展開 Contact DB 數據庫連接下的 “APP schema”(APP 方案)節點,右鍵單擊 “Tables”(表)節點,然后選擇 “Recreate Table”(重新創建表)以打開 “Recreate Table”(重新創建表)對話框。
-
在 “Recreate Table”(重新創建表)對話框中,導航到 CUSTOMER 抓取文件的保存位置,然后單擊 “Open”(打開)以便打開 “Name the Table”(命名表)對話框。
-
此時,可以更改表名稱或編輯表定義。否則,請單擊 “OK”(確定),以在 contact 數據庫中立即創建表。Contact DB 連接節點下將顯示新的 CUSTOMER 表節點。
如果查看新 CUSTOMER 表中的數據,您將會發現數據庫中沒有任何記錄,但該表的結構與抓取的表結構相同。
總結
以上是生活随笔為你收集整理的使用 Java DB (Derby) 数据库的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: Django(part37)--sess
- 下一篇: 第五人格盲女攻略