2013-06-27 48 views
1

我對Unidata完全陌生。我正在嘗試編寫一個可以從Unidata查詢記錄的Java應用程序。我下載了U2客戶端軟件包並安裝了UniDK。我跟着這個example。使用asjava.zip中的庫,我可以通過Unidata中的文件的鍵/ ID獲得單個記錄。Java中的Unidata查詢

我遇到了有關使用JPA的U2客戶端文檔。我想知道是否有任何其他選項,我可以編寫數據庫查詢來獲取帶有WHERE條件的記錄列表而無需實現JPA。我正在尋找類似的使用PHP來寫MySQL查詢。

謝謝。

回答

1

是的,你可以。首先,您需要了解一些有關'UniQuery'的信息,這是UniData數據庫的查詢語言。你可以在manuals on the Rocket Software site找到。

舉個例子,假設你有一個名爲customers文件和字段名爲name和`AGE-1

SELECT customers WITH name LIKE "Dan..." AND age GT "20" 

這個SELECT語句將產生有name記錄ID列表開始與丹和有age大於20.

在您的代碼中,您需要首先執行SELECT語句。假設udSess是您創建的會話:

UniCommand cmd = udSess.command(); // Create an object to run the command 
cmd.setCommand("SELECT customers WITH name LIKE 'Dan...' AND age GT '20'") 
cmd.exec() 

UniSelectList sl = udSess.selectList(0); 

while (!sl.isLastRecordRead()) 
{ 
    UniString recordID = sl.next(); 
    // Read your record here, using recordID 
} 
+0

omg @丹,你真的幫了我很多!謝謝:) –

+0

你會推薦哪一個... JPA或UniCommand? –

+0

沒問題。此時,UniCommand。我們確實有一個本地的UniJPA驅動程序,但不幸的是,它目前僅適用於Java 6。我們正在努力使它適用於Java 7. –

2

逾期隨訪到一個很好的答案:如果你對員工的UniData程序員,它可能是更好地使一個子程序調用,你只是傳遞參數,以獲得你需要什麼。有點像在其他語言中調用存儲過程。這並不是一個需求,但它可以是一個很好的方法,你有一個java程序員和一個unidata/pick程序員在一個項目上一起工作...