首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
您现在的位置: 程式碼之家 >> 數據庫知識 >  >> SQL Server 資料庫 >> 關於SqlServer

DataWindow 在 Java 中的應用:跨平台資料呈現的利器

     編輯:關於SqlServer

背景

DataWindow 是 PowerBuilder 核心優勢:強大的資料呈現、編輯、報表功能。Sybase 將其移植至 Java(JDataWindow)、.NET,讓非 PB 開發者也能享受其生產力。

Java 專案整合範例

以下示範在 Swing 應用程式中嵌入 JDataWindow,連接 Oracle 資料庫:

1. 環境準備

  • Sybase PowerBuilder Java SDK(含 powersoft.datawindow.*、powersoft.powerj.db.*)
  • Oracle JDBC Driver
  • .pbl 檔案(含 DataWindow 物件定義)

2. 核心程式碼結構

public class JDataWindowApp extends JFrame {
    private JDataWindowControl dwc;
    private Transaction trans;
    private final String PBL_PATH = "C:/PB7/Java.pbl";

    public JDataWindowApp() {
        dwc = createDataWindow("dw_products");
        if (dwc != null) {
            getContentPane().add(dwc);
            pack();
        }
    }

    private JDataWindowControl createDataWindow(String dwObject) {
        JDataWindowControl dw = new JDataWindowControl();
        dw.setSourceFileName(PBL_PATH);
        dw.setDataWindowObjectName(dwObject);
        dw.setVScroll(true);
        dw.insertRow(0);
        dw.setTransaction(getTransaction());
        return dw;
    }

    private Transaction getTransaction() {
        if (trans == null) {
            trans = new Transaction();
            trans.registerDriver("oracle.jdbc.driver.OracleDriver");
            trans.setDataSource("jdbc:oracle:thin:@host:1521:sid");
            trans.setUserID("user");
            trans.setPassWord("pwd");
            trans.connect();
        }
        return trans;
    }
    // 事件處理、CRUD 封裝...
}

3. 關鍵優勢

  • 宣告式資料綁定:在 .pbl 定義 SQL、顯示格式、驗證規則,Java 程式碼極精簡。
  • 豐富事件模型:支援 RowChanged、ItemChanged、DBError 等細粒度事件,易實作複雜業務邏輯。
  • 報表直印/匯出:內建 PDF、Excel、HTML 匯出,無需第三方報表工具。

現代化替代方案

隨著 PowerBuilder 經典版維護模式,新專案建議評估:

  • Apache POI / JasperReports:純 Java 報表方案。
  • Vaadin Grid / PrimeFaces DataTable:現代 Web UI 元件。
  • Spring Data + Thymeleaf:標準化資料存取與模板渲染。

DataWindow 仍是存量 PB 專案移植 Java 的最佳橋樑,新專案則建議採用原生 Java 生態系。

  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved