2013-04-04 283 views
0

因此,我是數據庫的新手,我試圖學習這些繩索。我有一個我熟悉的DB2數據庫。我被分配了一個任務,我需要編寫一個在數據庫上進行搜索的方法。搜索將採用兩個參數,一個用戶名和一個用戶ID號碼。如果用戶和用戶ID號不匹配,或者如果其中一個或另一個變爲空,那麼它需要拋出一個錯誤。如果它有效,那麼它將繼續吐出有關用戶的信息。DB2數據庫+驗證

我被告知使用findall()函數或類似的東西。我在網上尋找,我發現的是一些例子,處理像或ilike,我不知道如何這樣的事情會在我的情況下工作。我將如何着手這方面的一個體面的例子是什麼?

任何幫助表示讚賞。如果我有任何進展,我會回郵。

注意:我使用groovy/grails。域,控制器,視圖設置。

+0

更新:我被告知也查看hibernate查詢。 – CoffeePeddlerIntern 2013-04-05 14:03:08

回答

0

這是學校的一些家庭作業嗎?

findall()通常是一個正則表達式中的方法,我認爲這不是在這裏相關的。如果你有一個SQL數據庫,這意味着你有一個使用SQL作爲查詢語言的RDBMS。您需要了解SELECT命令,當您查看手冊的第一個時間時,看起來令人望而生畏,但實際上對於您的案例來說很簡單。您需要類似:

SELECT userfield1, userfield2,.. 
FROM myusertable 
WHERE myusertable.username = 'uname' AND myusertable.userid = userid 

uname和userid是您的搜索參數。請注意,出於安全原因,此SQL查詢應該使用PREPARED語句完成。

當您使用數據庫庫運行此查詢時,您將獲得必須分析的結果數組。如果它是空的,沒有用戶找到。

編輯:更新,以考慮到使用的休眠

Hibernate使用HQL它就像SQL和確實有方法的findAll。請參閱http://grails.org/doc/latest/ref/Domain%20Classes/findAll.html

+0

不,這是我實習時的一項任務。我被告知使用類似於findall()的東西。 – CoffeePeddlerIntern 2013-04-05 13:38:43

+0

ok>, CoffeePeddlerIntern 2013-04-05 13:59:25

+0

術語不是「sql db」,它是「關係數據庫」。 SQL是通常用於與數據庫系統交互的語言。而DB2絕對是一個關係數據庫管理系統(RDBMS),因此,它就像你說的那樣是sql db。微軟有一個名爲「MS SQL Server」的RDBMS,有時候人們稱之爲「sql db」。 – koriander 2013-04-05 14:08:05