【问题标题】:Getting started with wicket andHibernatewicket 和 Hibernate 入门
【发布时间】:2012-03-20 10:42:16
【问题描述】:

我是 Wicket 和 Hibernate 的新手。我已经观看了 youtube 视频并阅读了一些关于 Hibernate 的章节。在我能够使用 Hibernate 之前,我还有一个问题需要知道:

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

我看到的所有示例都是与其他框架一起使用的,例如 Wicket 与 Spring 或仅使用一个文件 Application.java 文件的示例。 Gess 我很困惑,真的错过了一个至少使用 Application.java、一个类文件和一个 .java 文件的示例,用于保存表单、检索数据库等功能。

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

欢迎任何提示

【问题讨论】:

    标签: java hibernate wicket


    【解决方案1】:

    在我看来,最好的方法是让持久层远离表示层(以实现干净的 MVC 架构)。

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

    您可以在DAO Pattern 中找到有关 DAO 模式的更多信息,以及有关使用 Wicket、Spring 和 Hibernate 的基于事务的持久性here

    【讨论】:

    • 我确实有一些使用 Wicket-Spring-Hibernate 的示例。我确实读过它们,但它们与没有 Spring 的示例有很大不同。
    • Spring 会让应用程序“胖”吗?在一个只有 10 个小页面的项目上使用它会不会过大?我需要了解很多关于 Spring 的知识吗?以后会付钱吗?使用 spring 可能是明智的,但到目前为止,我还没有看到任何关于为什么...
    • 它不会,因为 Spring 3.0 版本是高度模块化的,因此可以让您的应用程序保持“苗条”:) 我建议学习 Spring(至少是基础知识),因为它可以解决最日常的问题任务,它仍然很容易学习。
    【解决方案2】:

    您应该创建具有主要功能(获取、保存、更新对象)的 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 的小测试项目开始

    【讨论】:

    • 使用 DAO - 类文件是有意义的,因为它可以很容易地在其他应用程序中重用 DAO 类。如果我理解正确,我应该创建一个对象 i Application.java,然后将对该对象的引用传递给需要使用它的任何页面。当我想到它时,这是有道理的。谢谢:-)
    【解决方案3】:

    在这种情况下,当您不熟悉 Hibernaet 和 Wicket 时,请尝试一个接一个地学习。

    使用简单的 Java 程序为 Hibernate 制作一些演示/POC 项目。 然后在 Wicket 上做一些演示。

    然后制作一些小型 Web 应用程序,将 Hibernate 和 Wicket 集成在一起,就像您所学的那样。

    你应该轻松​​,彻底。

    如果您的 OOP 概念清晰,Hibernate 应该会非常简单。我不知道 Wicket,所以不能说。

    【讨论】:

    • 是的,将事物分解并一点一点地研究它是明智的。我一直在玩 Wicket,所以我开始构建一个应用程序,它可以使用表单和表格来存储和检索数据库中的信息。概念似乎很清楚,Hibernate 有很多资源可以在卡住时进行研究。当使用超过一页时,它只是错过了告知在哪里编程的内容。我找到了 wicket-spring-hibernate 示例,并将尝试从中找出代码行的位置:-)
    【解决方案4】:

    要使用 Hibernate 实现 Wicket,请查看 Databinder (http://github.com/n8han/Databinder-for-Wicket/)。它是 Wicket 和 Hibernate(以及其他数据处理程序)之间的一个极好的薄层。

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

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

    如需快速修复,请查看 http://comp.cast.org/maven2/ 的 Databinder 版本 1.3.2.CAST,它至少使 Databinder 与最新的 Hibernate 保持一致。

    有关此代码的复杂且不完整但功能强大的实现,请参阅http://code.google.com/p/cast-wicket-modules/

    有关使用这些模块的已完成项目,请参阅https://code.google.com/p/udl-curriculum-toolkit/

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

    【讨论】:

      猜你喜欢
      • 2019-03-09
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2014-06-21
      • 2017-12-23
      • 2010-10-27
      • 1970-01-01
      相关资源
      最近更新 更多