我對Unidata完全陌生。我正在嘗試編寫一個可以從Unidata查詢記錄的Java應用程序。我下載了U2客戶端軟件包並安裝了UniDK。我跟着這個example。使用asjava.zip中的庫,我可以通過Unidata中的文件的鍵/ ID獲得單個記錄。Java中的Unidata查詢
我遇到了有關使用JPA的U2客戶端文檔。我想知道是否有任何其他選項,我可以編寫數據庫查詢來獲取帶有WHERE條件的記錄列表而無需實現JPA。我正在尋找類似的使用PHP來寫MySQL查詢。
謝謝。
我對Unidata完全陌生。我正在嘗試編寫一個可以從Unidata查詢記錄的Java應用程序。我下載了U2客戶端軟件包並安裝了UniDK。我跟着這個example。使用asjava.zip中的庫,我可以通過Unidata中的文件的鍵/ ID獲得單個記錄。Java中的Unidata查詢
我遇到了有關使用JPA的U2客戶端文檔。我想知道是否有任何其他選項,我可以編寫數據庫查詢來獲取帶有WHERE條件的記錄列表而無需實現JPA。我正在尋找類似的使用PHP來寫MySQL查詢。
謝謝。
是的,你可以。首先,您需要了解一些有關'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
}
逾期隨訪到一個很好的答案:如果你對員工的UniData程序員,它可能是更好地使一個子程序調用,你只是傳遞參數,以獲得你需要什麼。有點像在其他語言中調用存儲過程。這並不是一個需求,但它可以是一個很好的方法,你有一個java程序員和一個unidata/pick程序員在一個項目上一起工作...
omg @丹,你真的幫了我很多!謝謝:) –
你會推薦哪一個... JPA或UniCommand? –
沒問題。此時,UniCommand。我們確實有一個本地的UniJPA驅動程序,但不幸的是,它目前僅適用於Java 6。我們正在努力使它適用於Java 7. –