java - 如何处理用 Java 编写的网站的数据库,更具体地说是 Wicket?

标签 java hibernate spring database-connection wicket

我是使用 Java 进行网站开发的新手,但我已经开始使用 Wicket 并制作了一个小网站。我想扩展我已经制作的内容(带有表单、标签和链接的网站)并实现数据库连接。

我看过几个示例,例如 Mystic Paste,我发现它们使用的是 Hibernate 和 Spring。我以前从未接触过 Hibernate 或 Spring,老实说,大量使用注释让我有点害怕,因为我以前没有真正使用过它们,除了抑制警告和覆盖之外。

此时我有一个 Connection 对象,它是我在初始化时在 WebApplication 类中设置的。然后,每当我需要执行查询时,我都会检索此连接对象。我不知道这对于生产 Web 应用程序来说是否是一种糟糕的方法。

非常感谢所有帮助。

最佳答案

Wicket、Spring 和 Hibernate 几乎是 Wicket 应用程序的标准堆栈。或者更确切地说,任何 Web 框架、Spring 和 Hibernate 几乎都是任何 Web 框架的标准堆栈。

关于 Wicket,在组件内部使用 @SpringBean 注入(inject)对象是一个非常好的特性。此外,OpenSessionInViewFilter为您管理 Hibernate session (而 Hibernate 本身负责连接)。

因此,我真的建议您研究一下 Spring 和 Hibernate——它们都不需要注释,但大多数时候它们比配置文件(通常是 XML)更容易使用。

如果您仍然不想使用 Spring 或 Hibernate,我建议您查看 OpenSessionInViewFilter 并自己创建类似的东西:为每个请求创建一个连接,在一个请求期间使用它,最后关闭它。由于这不会执行得很好,您可能宁愿选择从池中获取连接,并在请求结束时将其返回到该池中。但是不用编写这段代码,您可能已经将 bean 注入(inject)到您的组件中 ;)

关于java - 如何处理用 Java 编写的网站的数据库,更具体地说是 Wicket?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2593329/

相关文章:

java - 字段读取同步和volatile的区别

java - 等距字符串,同时对齐它们

java - 为什么 Spring ORM JpaTransactionManager 使用 native 实体管理器工厂?

spring - 如何下载 Spring 框架

java - Spring - 删除另一个表中引用的实体时无法捕获 ConstraintViolationException

java - Spring EL 和 JSF

java - 如何在 flatMap 运算符中正确查询?

java - hibernate 的工作。每次都需要使用事务吗?如果我在检索数据时不使用它会导致任何问题吗?

java - 如何以编程方式配置 TransactionManager

Java XPath 将 '-' 解释为带 GUID 的减号