Java wicket和Hibernate入门

Java wicket和Hibernate入门,java,hibernate,wicket,Java,Hibernate,Wicket,我不熟悉Wicket和Hibernate。我看了youtube视频,读了一些关于Hibernate的章节。在使用Hibernate之前,我还有一个问题需要知道: 在wicket中,我们有Application.java(用于所有常见的东西)和一个java文件,用于应用程序中的每个“页面”,例如login.java、register.java等。在Application.java中应该包含什么?在wicket中使用Hibernate时,什么是好的编程实践 我看到的所有示例都是其他框架的示例,比如W

我不熟悉Wicket和Hibernate。我看了youtube视频,读了一些关于Hibernate的章节。在使用Hibernate之前,我还有一个问题需要知道:

在wicket中,我们有Application.java(用于所有常见的东西)和一个java文件,用于应用程序中的每个“页面”,例如login.java、register.java等。在Application.java中应该包含什么?在wicket中使用Hibernate时,什么是好的编程实践

我看到的所有示例都是其他框架的示例,比如Wicket Toghetter with Spring,或者仅使用一个文件Application.java fil的示例。Gess很复杂,而且确实错过了一个示例,它至少使用了Application.java、一个类文件和一个.java文件来实现som功能,如保存表单、检索数据库等

我不知道这是否重要,但我在这个项目中使用Netbeans


在我看来,最好的方法是使持久层远离表示层(以实现干净的MVC体系结构)

在这种情况下,这意味着您应该将与Wicket相关的初始化逻辑放在应用程序类中(更具体地说,因为不鼓励您直接子类化),并将与持久性相关的逻辑放在DAO-s中(最好封装在服务层中)


您可以在中找到有关DAO模式的更多信息,以及关于Wicket、Spring和Hibernate基于事务的持久性的更多信息。在本例中,当您对Hibernate和Wicket都是新手时,请尝试一个接一个地学习

用简单的Java程序为Hibernate制作一些演示/POC项目。 然后继续Wicket,也做一些演示

然后制作一些小型web应用程序,如您所知,将Hibernate和Wicket集成在一起

你应该放松,彻底


如果您的OOP概念清晰,那么Hibernate应该非常容易。我不知道Wicket是什么,所以不能说。关于用Hibernate实现Wicket,请看一下Databinder()。它是Wicket和Hibernate(以及其他数据处理程序)之间的一个优秀的薄层

然而,Databinder的核心是为Wicket 1.2之类的东西编写的,并且已经有一段时间没有更新了。一些人说他们将要更新它(包括我自己),但他们没有

因此,Databinder是如何使用Wicket和Hibernate的一个很好的模型。然而,在实践中,它有几个缺陷需要解决

要获得快速修复,请查看Databinder版本1.3.2.CAST,该版本至少使Databinder与最新的Hibernate保持一致

有关此代码的复杂、不完整但功能强大的实现,请参阅

有关使用这些模块的已完成项目,请参见


所有这些链接都在进行中,但都是一个开始。

您应该创建带有主要功能(获取、保存、更新对象)的DAO类,并在WebApplication类中创建实例。例如,您有:

public class WebApp extends WebApplication {

    private final MyDAO myDAO = new MyDAO();
    public MyDAO getMyDAO() {
       return myDAO;
    }
    init(){
        ...
    }
    ...
}
在页面类中,您可以使用

  ((WebApp)Application.get()).getMyDAO()
附言


请不要使用其他组件。。只有冬眠+小门。我同意Paarth的观点,如果你不知道wicket和hibernate,你应该从wicket和hibernate的小测试项目开始

我有使用wicket Spring hibernate的som示例。我确实读过它们,但它们与没有Spring的示例有很大不同。Spring会使应用程序“胖”吗?在一个只有10个小页面的项目上使用它会不会有点过分呢?我需要了解很多关于春天的知识吗?以后会有回报吗?使用spring可能是明智的,但到目前为止,我还没有看到任何关于为什么…它不会的争论,因为3.0版spring是高度模块化的,因此允许您保持应用程序的“苗条”:)我建议学习spring(至少是基础知识),因为它解决了大多数日常任务,而且仍然很容易学习。是的,把东西拆开,一点一点地研究是明智的。我在Wicket上玩了一段时间,所以我开始构建一个应用程序,它将使用表单和表来存储和检索数据库中的信息。这些概念似乎很清楚,当Hibernate陷入困境时,它有很多资源可供研究。当使用多个页面时,它只是没有告知要在何处编程。我已经找到了wicket spring hibernate示例,并将尝试从中找出哪几行代码去了哪里:-)使用DAO类文件make sence,因为它使在其他应用程序中重用DAO类变得容易。如果我理解正确,我应该创建一个对象I Application.java,然后将对该对象的引用传递给需要使用它的任何页面。我一想到它就明白了。谢谢:-)