【问题标题】:Do I need POJOs for Hibernate?Hibernate 需要 POJO 吗?
【发布时间】:2012-01-16 02:56:37
【问题描述】:

我最近开始使用 Java servlet 进行后端编程,以访问 Intranet webapps 的数据。

我创建了一个 servlet,它将查询名称传递给数据库上的存储过程,然后将结果作为 JSON 块返回。我在 webapps 中使用 AJAX 调用。我的网络应用最多只有大约 100 个用户 - 不过这个数字在明年会缓慢增长。

我想使用休眠进行连接池,而不是为每个 AJAX 调用打开和关闭 JDBC 连接。但是我学习过的每个hibernate教程都是从创建POJO来映射数据开始的,使用getter和setter。我根本不会真正使用 POJO 方法 - 目前我使用字符串构建器从结果集对象创建 JSON,但并不真正明白为什么需要更改它。

基本上,我想简单地更改我的 servlet 以调用某种休眠连接池对象,而不是创建 JDBC 连接。

我可以/我应该为此目的使用休眠(只是没有 POJO 的连接池)吗?如果是这样,有人知道只关注这个的教程吗?如果不是,我应该为此使用其他东西吗?

正如我所说,我对服务器端编程很陌生,所以我可能只是缺少一些基本概念。任何方向表示赞赏。

【问题讨论】:

  • 为什么不直接使用缓存,比如 ehcache/etc?

标签: java hibernate servlets architecture


【解决方案1】:

Hibernate 用于对象关系映射;将对象存储到表中,并从表中恢复对象。它不提供连接池。实际上,它是您提供的连接池的消费者

您可能会看到一个流行的 JDBC 连接池是C3P0

【讨论】:

    【解决方案2】:

    Hibernate 是Object-relational mapping 的工具,因此非常适合将 Java 对象映射到表。如果您想使用 JDBC 执行查询并继续使用构建器将 sql 结果集转换为 JSON,则不需要或不需要 Hibernate,并且连接池也不需要它。

    您应该关注Dbcp3cp0 等专注于提供连接池功能而不是Hibernate 的工具。

    【讨论】:

    • 谢谢你把事情弄清楚了。我不知道我可以单独实施它。在检查了 Dbcp 和 c3p0 之后,我发现了另一个与 tomcat 7.0+ jdbc-pool 一起提供的,它似乎具有最好的统计数据。我现在就这么做。
    【解决方案3】:

    @user1120185 加上 Ernest Friedman-Hill 的回答,您的问题的直接答案是 Yes you need pojos for hibernate ,原因是 Hibernate 会将这些 POJO 映射到数据库的表列。

    是的,您不必将所有属性映射到 java 对象,您可以将可选的 java 对象映射到休眠表。

    【讨论】:

      猜你喜欢
      • 2012-11-17
      • 2016-04-06
      • 2011-03-24
      • 1970-01-01
      • 2011-09-24
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2012-03-15
      相关资源
      最近更新 更多