2012-03-20 93 views
1

我是Wicket和Hibernate的新成員。我觀看了YouTube視頻並閱讀了關於Hibernate的som章節。我仍然有一個問題,我需要知道我能夠使用休眠之前:wicket和Hibernate入門

在wicket我們有應用程序中的Application.java(用於所有常見的東西)和eache「page」的java文件,例如login.java,register.java等等。Application.java中應該包含什麼內容以及在Wicket中使用Hibernate時什麼是良好的編程習慣?

我看過的所有例子都是與其他框架一起使用的,例如Wicket使用spring來實現,或者只使用一個文件Application.java fil。 Gess Im comfused,真的錯過了一個例子,至少使用Application.java,一個類文件和一個.java文件來保存som功能,比如保存表單,回收db等等。

我不知道它的重要性,但是使用Netbeans在這個項目中。

任何提示歡迎

回答

2

在我看來,最好的辦法就是保持持久層從表現層離(爲了獲得清晰的MVC架構)。

在這種情況下,這意味着你應該把你的檢票相關初始化邏輯在你的應用類(更具體WebApplication,由於要從直接子類Application氣餒),並把持久性相關的邏輯在DAO-S(優選阱包封在服務層中)。

您可以找到有關在DAO Pattern和有關基於事務的持久性與檢票,春季DAO模式的更多信息和Hibernate here

+0

我確實有使用Wicket-Spring-Hibernate的som示例。我確實讀過它們,但它們與沒有Spring的例子截然不同。 – Aurheim 2012-03-20 11:30:46

+0

春天會讓應用程序「變胖」嗎?在一個擁有10個小頁面的項目中使用它會不會是過度的?我需要了解很多關於Spring的知識,並且以後會付錢嗎?這可能是明智的使用春天,但到目前爲止,我還沒有看到爲什麼... – Aurheim 2012-03-20 11:33:53

+0

它不會,自3.0版以來,春是大大模塊化,從而使您的應用程序「苗條」:)我建議學習春天(至少是基礎知識),因爲它解決了大多數日常任務,而且學習起來還是很容易的。 – xea 2012-03-20 15:14:33

0

在這種情況下,如果你是新來都Hibernaet &檢票,嘗試學習一個後另一個。

使用Simple Java程序爲Hibernate做一些演示/ POC項目。然後繼續Wicket,做一些演示也。

然後製作一些小型的Web應用程序,將Hibernate和Wicket集成在一起,就像您所瞭解的那樣。

你應該很容易,徹底。

如果你的OOP概念清晰,Hibernate應該是非常容易的。我不知道Wicket,所以不能說。

+0

是的,明智的做法是將事物分開並一點一點地研究它。我一直在玩Wicket一段時間,所以我開始構建一個應用程序,他將使用表單和表來存儲和檢索數據庫中的信息。這些概念似乎很清楚,Hibernate有很多資源需要在停滯時進行研究。它只是錯過了通知什麼時使用多個頁面進行編程。我已經找到了wicket-spring-hibernate的例子,並且會試圖從它們中找出哪些代碼的klines代碼在哪裏:-) – Aurheim 2012-03-20 11:39:50

0

對於使用Hibernate實現Wicket,請查看Databinder(http://github.com/n8han/Databinder-for-Wicket/)。這是Wicket和Hibernate之間的一個很好的薄層(其他數據處理程序)。但是,Databinder的核心是爲Wicket 1.2編寫的,並且在一段時間內沒有更新。有幾個人說他們會更新它(包括我自己),但他們沒有。

因此,Databinder是如何使用Wicket和Hibernate的很好的模型。但是,實際上,它存在一些需要解決的缺陷。

要快速解決問題,請查看Databinder版本1.3.2.CAST,地址爲http://comp.cast.org/maven2/,這至少可以使Databinder符合最新的Hibernate。

對於一個複雜的和不完整的,但功能強大,實現這個代碼,請參閱http://code.google.com/p/cast-wicket-modules/

對於使用這些模塊已完成的項目,看到https://code.google.com/p/udl-curriculum-toolkit/

所有這些環節都在進步的作品,但開始的地方。

1

您應該創建帶有主函數(geting,save,更新對象)的DAO類並在WebApplication類中創建實例。例如,你有:

public class WebApp extends WebApplication { 

    private final MyDAO myDAO = new MyDAO(); 
    public MyDAO getMyDAO() { 
     return myDAO; 
    } 
    init(){ 
     ... 
    } 
    ... 
} 

,並在頁面類你可以使用

((WebApp)Application.get()).getMyDAO() 

附註:此實例

請不要使用額外的組件..只有hibernate + wicket。我同意帕斯,如果你不知道檢票和冬眠你應該從微型測試項目開始檢票和冬眠

+0

使用DAO - 類文件使得它很容易在其他應用程序中重用DAO類。如果我正確理解了這一點,我應該在Application.java中創建一個對象,然後將此對象的refference傳遞給需要使用它的任何頁面。讓我思考的時候會感到很開心。謝謝 :-) – Aurheim 2012-03-20 18:32:34