1

所以我正在编写一个简单的应用程序,而不是摸索它,我想看看是否有人可以就如何设置它提供建议。

我有一个 wicket 应用程序,我基本上会做一些类似论坛应用程序的事情(我一直在查看 wicket 留言簿示例)但是我想将这些消息保存到数据库中。我想使用列表视图(或者可能是转发器)来显示消息。我已经创建了数据库(mysql)和表,并为它们创建了实体对象。

将检票口与数据库连接的最佳实践是什么?我想我需要一个可加载的可拆卸模型,但我愿意接受建议。

我是否应该创建一个实现 loadabledetachable 接口的类并在该类中对数据库进行事务处理?我应该做一个DAO吗?并通过调用DAO中的方法加载模型中的数据?我一直在看例子,我对如何做到这一点感到困惑。我已经在学习 wicket 和整个 JPA 的东西,所以我真的不想在这上面扔像 Spring 这样的东西。我需要能够添加/更新/删除,而我只是想找出最好的地方。

任何帮助或指导表示赞赏。

4

2 回答 2

1

我建议您使用最简单的模型,例如Modelor PropertyModel。渲染页面时,将数据库中的数据加载到模型中并显示数据。当用户按下更新按钮时,从模型中读取新值,然后更新到数据库。

您现在不需要任何LoadableDetachableModel东西,因为您仍在学习 wicket 框架的基本部分。

关于 DAO 部分,如果你只是想专注于学习 wicket,创建一个没有 DAO 类的简单 CRUD 应用程序是可以的。无论如何,您总是可以稍后将这些代码重构为 DAO 类。但是,如果您正在尝试学习开发 Web 应用程序,那么您应该创建一个 DAO 类并了解多层架构的概念。

于 2012-11-29T16:08:18.790 回答
0

德语有一个很好的解释 - 但代码是英文的:

该解决方案通过存储类名并在 load() 上执行查找来扩展 LoadableDetachableModel 以保存 EntityFacade。

我认为这里的例子:http: //hotchpotch-blog.de/2012/10/09/wrapping-eines-ejb-in-ein-loadabledetachablemodel/

可以扩展到这样的东西(不准备生产):

public class EjbModel extends LoadableDetachableModel {

/**
 * Get the name of the EJBInterface  type suitable for lookup.
 * 
 */
protected String ejbName;

public EjbModel(EJBInterface bean){
    //store the bean so it will get detached 
    super(bean)
    ejbName = bean.getSimpleName() + "Facade"; //not sure if + "Facade" is needed
}

@Override
protected EJBInterface  load() {
    EJBInterface  result = null;
    try {
        InitialContext ctx = new InitialContext();
        result = (EJBInterface ) ctx.lookup("java:module/" + ejbName);
    } catch (NamingException ex) {
        Logger.getLogger(this.getClass().getName()).log(Level.SEVERE, "Error at JNDI lookup for " + getEjbName(), ex);
    }
    return result;
}
}
于 2014-06-11T09:02:49.420 回答