Giao diện
@digiforce-nc/plugin-data-source-external-oracle
Plugin kết nối Oracle Database bên ngoài làm data source — biến bảng Oracle thành collection để thao tác CRUD từ giao diện Digiforce.
Plugin này làm gì?
Oracle Database là RDBMS phổ biến trong các tổ chức lớn, ngân hàng, viễn thông. Plugin này đăng ký loại data source oracle vào data-source-manager factory, kết nối qua Oracle Instant Client, introspect schema và map bảng thành collection.
Cơ chế hoạt động
Tính năng chính
| # | Tính năng | Mô tả |
|---|---|---|
| 1 | Kết nối Oracle | Hỗ trợ SID, Service Name và TNS connection string |
| 2 | Auto-detect tables | Phát hiện bảng, cột, kiểu dữ liệu tự động |
| 3 | Schema selector | Chọn Oracle schema/owner cụ thể |
| 4 | Multi-instance | Kết nối nhiều Oracle instance đồng thời |
| 5 | CRUD qua UI | Thao tác dữ liệu trực tiếp từ giao diện |
| 6 | Oracle types | Hỗ trợ các kiểu Oracle đặc thù (NUMBER, VARCHAR2, CLOB...) |
Cấu hình kết nối
| Tham số | Bắt buộc | Mô tả | Ví dụ |
|---|---|---|---|
host | Có | Địa chỉ server Oracle | 192.168.1.100 |
port | Không | Cổng Listener (mặc định 1521) | 1521 |
sid | Có (*) | Oracle SID | ORCL |
serviceName | Có (*) | Service name (thay thế SID) | orcl.local |
username | Có | Tên đăng nhập | hr_readonly |
password | Có | Mật khẩu | *** |
schema | Không | Schema/owner cần introspect | HR |
(*) Cần ít nhất một trong sid hoặc serviceName.
Kiến trúc nội bộ
| Thành phần | Vai trò |
|---|---|
| Register | Đăng ký oracle type vào factory registry |
| Factory | Tạo kết nối Oracle qua OCI protocol |
| Introspector | Query ALL_TABLES/ALL_TAB_COLUMNS để map bảng → collection |
| TypeMapper | Chuyển đổi Oracle types sang Digiforce field types |
Thành phần client
| Thành phần | Mô tả |
|---|---|
OracleConnectionForm | Form cấu hình kết nối Oracle (SID/Service Name) |
SchemaSelector | Chọn schema/owner |
ConnectionTest | Kiểm tra kết nối trước khi lưu |
ExternalCollectionList | Danh sách bảng Oracle được map |
Dependencies
| Package | Vai trò |
|---|---|
@digiforce-nc/server | Server framework |
@digiforce-nc/database | Database abstraction layer |
@digiforce-nc/client | Client UI framework |
@digiforce-nc/data-source-manager | Registry quản lý data source |
oracledb | Oracle Database driver (cần Oracle Instant Client) |
Lưu ý triển khai
- Yêu cầu Oracle Instant Client được cài trên server
- Hỗ trợ Oracle 12c trở lên
- Oracle phân biệt chữ hoa/thường cho tên bảng và cột
- Connection pool được quản lý tự động bởi driver