| 維度 | Mobile Application Builder (MAB) | WebSphere Studio Device Developer (WSDD) |
| 定位 | DB2e 附屬視覺化 RAD 工具 | 專業級 Java ME IDE (Eclipse 基礎) |
| 生成目標 | Palm C 應用 / Java ME | Java ME (MIDP/CLDC) 為主 |
| 適用場景 | 快速原型、表單驅動應用 | 複雜邏輯、團隊協作、版本控制、調試剖析 |
| 成本 | SDK 免費包含 | 商業授權 (有評估版) |
MIDP 基礎回顧
- MIDP (Mobile Information Device Profile):J2ME 配置文件,運行於 CLDC 之上
- MIDP for Palm OS:讓 Palm 運行標準 MIDlet,遵循 Palm UI 慣例
- 高層 API:可移植 (List, Form, Alert);低層 API:全屏繪製/鍵盤控制、犧牲移植性
- MIDlet 生命周期:
startApp()、pauseApp()、destroyApp()
WSDD 開發環境搭建
- WSDD 評估版:下載,可與 WSAD 共存不同目錄
- DB2 Everyplace V8.1 SDK:安裝至
C:\DB2EveryPlaceSDK (含評估版引擎)
- Palm OS Emulator (POSE) + ROM:
- SDK 目錄
SDK\ApplicationBuilder\Toolkits\Palm Development\MAB_prereqs\emulator-win.zip 解包至 c:\PalmDev
- 解包
pilrc.zip 至同目錄
- 從 Palm Resource Pavilion 下載 ROM Image
- 雙擊
emulator.exe → New Session 選擇 ROM → 保存 run1.psf
- POSE 安裝 DB2e 引擎與 VNURSE 樣例 (兩種方式二擇一):
- 手動:右鍵 Emulator → Install → Other → 選擇 SDK
Clients\PalmOS\database\ 下 8 個 .prc (含 NurseInit.prc)
- 自動:安裝 Palm Desktop + HotSync Manager → POSE 配置 TCP/IP Redirect + LANSync + Primary PC (127.0.0.1) → MAB Install on Mobile Devices 工具 → HotSync 推送
WSDD 專案創建與配置
- New Wizard → J2ME for J9 → Create MIDlet Suite
- Project:
DB2eMIDP / Suite: DB2eMIDP / MIDlet: DB2eMIDP / Package: com.ibm.pic.demo / Class: DB2eDemo
- 導入 5 個 Java 源文件至
src/com/ibm/pic/demo:
AboutAlert.java, DataList.java, DB2eDemo.java, ImageCanvas.java, PICIntroCanvas.java
- 創建
src/icons 文件夾,導入 3 張圖片:App.png, Duke.png, JavaPowered-8.png
- 導入 DB2e JDBC 包:File → Import →
<SDK>\Clients\PalmOS\database\JDBC\cldc → 勾選 cldc\lib 下 java 和 com (不含 com\ibm\db2e\app)
- 專案屬性 → Java Build Path → Libraries → Add Folder → 選擇專案下
lib 文件夾
針對 Palm OS 68k 平台構建配置 (wsddbuild.xml)
- 雙擊
wsddbuild.xml → Build 標籤 → Add → Platform: J9 for Palm 68k
- Creator ID:
DB2e / Application Name: DB2eDemo
- Launch 模式:PrcApplication on Palm OS emulator
- 編輯
palm68k/DB2eMIDP Project.jxeLinkOptions:
- Include whole classes → 新增
com.ibm.db2e.jdbc.DB2eDriver (確保驅動類被鏈接)
- Include resources → 新增三張圖片
icons/App.png 等
運行與調試
- Window → Preferences → Device Developer → Palm OS Java Configuration
- Emulator Run Arguments:
-psf C:\PalmDev\run1.psf
- Debug Arguments:
-psf C:\PalmDev\debug.psf
- wsddbuild.xml → Launches → 選擇
Launch - Run and Debug palm68k/DB2eMIDP Project.prc as Prc Application on PalmOS emulator → Run
- Emulator 中點擊
DB2eDemo 圖標 → 測試 Query/Intro/About 功能
核心源碼解析 (DB2eDemo.java)
// 1. 載入驅動
private static final String driver = "com.ibm.db2e.jdbc.DB2eDriver";
private static final String url = "jdbc:db2e:mysample";
// 2. startApp() 啟動顯示主畫面
protected void startApp() { display = Display.getDisplay(this); displayOriginalPage(); }
// 3. 主畫面命令按鈕
queryCommand = new Command("Query", Command.SCREEN, 1);
PICIntroCommand = new Command("Intro", Command.SCREEN, 1);
// ... commandAction 分發處理
// 4. 查詢 VNPERSON 表
public String[] getDataList() {
String[] list = new String[100]; int i = 0;
try {
Class.forName(driver);
Connection con = DriverManager.getConnection(url);
Statement st = con.createStatement();
ResultSet rs = st.executeQuery("SELECT ID,name,address,city FROM vnperson");
while (rs.next()) {
StringBuffer buf = new StringBuffer();
buf.append(" ----- ").append(rs.getString(1)).append(", ")
.append(rs.getString(2)).append(", ")
.append(rs.getString(3)).append(", ")
.append(rs.getString(4));
list[i++] = buf.toString();
}
rs.close(); st.close(); con.close();
return Arrays.copyOf(list, i);
} catch (Exception ex) { return null; }
}
// 5. pauseApp/destroyApp 釋放資源
protected void destroyApp(boolean flag) { dataList = null; }
關鍵點:
- JDBC URL
jdbc:db2e:mysample 指向 Palm 端已安裝的 VNURSE 樣例數據庫
getDataList() 返回非空字符串數組供 DataList (List 組件) 顯示
- 異常吞沒僅為演示,生產代碼必須記錄日誌
真機部署
wsddbuild.xml → Launches → Launch - Run and Debug palm68k/DB2eMIDP Project.prc as Prc Application → Run → 彈出 Palm OS Install Tool → Done → HotSync 推送至實體設備。
- 上一篇文章: DB2 Everyplace JSP 應用開發與部署:從 Windows 工作站到 Windows CE 設備
- 下一篇文章: 使用 DB2 Everyplace 構建 MIDP 移動應用程式完整指南
Copyright ©
程式碼之家 All Rights Reserved