Apache Derby Bài 14: Thiết lập dự án Maven/Gradle với thư viện derby.jar
1. Từ công cụ dòng lệnh bước vào thế giới Java
Trong các bài trước (Phần 1 và 2), chúng ta đã làm quen với kiến trúc, cú pháp SQL và thao tác trực tiếp với cơ sở dữ liệu Derby thông qua công cụ ij. Bắt đầu từ bài học này (Phần 3), chúng ta sẽ chính thức tích hợp Apache Derby vào mã nguồn Java.
Để sử dụng Derby trong ứng dụng Java, bạn cần đưa các file .jar của Derby vào biến CLASSPATH của dự án. Trong các hệ thống hiện đại, thay vì tải file .jar thủ công và sao chép vào thư mục lib/, chúng ta sử dụng các công cụ quản lý dự án và thư viện tự động như Maven hoặc Gradle.
2. Các artifact của Apache Derby trên kho trung tâm
Apache Derby được xuất bản chính thức trên Maven Central Repository dưới Group ID là org.apache.derby. Để phát triển một ứng dụng ở chế độ nhúng (Embedded Mode), bạn chỉ cần một thư viện lõi duy nhất:
-
Artifact ID:
derby -
Vai trò: Chứa toàn bộ Engine cơ sở dữ liệu và JDBC Driver (
EmbeddedDriver).
(Lưu ý: Nếu bạn sử dụng Java 17 hoặc Java 21, hãy luôn chọn các phiên bản Derby từ 10.15.x trở lên để đảm bảo tính tương thích tốt nhất với hệ thống module của Java 9+).
3. Khởi tạo dự án và cấu hình với Maven
Maven sử dụng tệp pom.xml (Project Object Model) để quản lý thông tin cấu hình.
Bước 1: Khởi tạo dự án
Nếu sử dụng IntelliJ IDEA, Eclipse hoặc dòng lệnh, hãy tạo một dự án Maven cơ bản với Java 17+.
Bước 2: Thêm Dependency
Mở tệp pom.xml và thêm đoạn mã sau vào trong thẻ <dependencies>:
XML
<dependencies>
<!-- Thư viện lõi Apache Derby cho Embedded Mode -->
<dependency>
<groupId>org.apache.derby</groupId>
<artifactId>derby</artifactId>
<version>10.17.1.0</version>
</dependency>
</dependencies>
Sau khi dán đoạn mã, nhớ nhấn nút Reload Project (biểu tượng làm mới) trong IDE để Maven tiến hành tải file derby-10.17.1.0.jar (cùng các thư viện dùng chung như derbyshared) từ internet về máy tính của bạn.
4. Khởi tạo dự án và cấu hình với Gradle
Nếu bạn chuộng Gradle vì cú pháp ngắn gọn và tốc độ 빌 (build) nhanh hơn, bạn sẽ làm việc với tệp build.gradle.
Mở tệp build.gradle và thêm dòng sau vào khối dependencies:
Groovy
dependencies {
// Thư viện lõi Apache Derby cho Embedded Mode
implementation 'org.apache.derby:derby:10.17.1.0'
}
Tương tự như Maven, hãy đồng bộ lại (Sync) dự án để Gradle tải thư viện về thư mục .gradle/caches/.
5. Cấu trúc thư mục dự án chuẩn và vị trí lưu Database
Khi chạy ứng dụng Java có tích hợp Derby Embedded, cơ sở dữ liệu sẽ được tạo ra trực tiếp trên ổ cứng. Việc nắm rõ cấu trúc thư mục giúp bạn biết database của mình sẽ "nằm ở đâu".
Một dự án Maven/Gradle chuẩn có cấu trúc như sau:
Plaintext
my-derby-app/
├── pom.xml # (hoặc build.gradle)
├── src/
│ ├── main/
│ │ ├── java/ # Nơi viết code Java (ví dụ: com.hieu.app.Main.java)
│ │ └── resources/ # Chứa các file cấu hình (application.properties...)
│ └── test/
│ └── java/ # Chứa code Unit Test
├── target/ # (hoặc build/) - Thư mục chứa file .class sau khi biên dịch
└── my_embedded_db/ # <--- Thư mục Database tự động sinh ra tại đây
├── log/
├── seg0/
└── db.lck
Nguyên lý vị trí: Nếu bạn cấu hình URL JDBC là jdbc:derby:my_embedded_db;create=true, Derby sẽ khởi tạo thư mục my_embedded_db tại thư mục gốc (root directory) của dự án (cùng cấp với pom.xml), chứ không phải nằm bên trong thư mục src/ hay thư mục chứa mã nguồn .java.
6. Tổng kết
-
Việc sử dụng Maven hoặc Gradle giúp tự động hóa quá trình tải, liên kết và quản lý phiên bản của
derby.jar. -
Trong chế độ nhúng, bạn chỉ cần nạp dependency
org.apache.derby:derby. Các dependency khác nhưderbyclienthayderbynetchỉ dùng cho kiến trúc mạng (Network Server). -
Thư mục dữ liệu vật lý của Derby sẽ được tạo tại thư mục thực thi (Working Directory) của ứng dụng Java, mặc định là thư mục gốc của dự án trên IDE.
Hạ tầng dự án đã sẵn sàng. Ở bài tiếp theo, chúng ta sẽ bắt đầu viết những dòng code Java đầu tiên để giao tiếp với Derby: Apache Derby Bài 15: Tải Driver và khởi tạo kết nối nhúng (EmbeddedDriver).
All rights reserved