PlayFramework,Ebean和HickariCP如何连接?

时间:2015-12-23 01:16:37

标签: playframework ebean playframework-2.4

我在Play 2.4中使用Ebean,但我不清楚如何处理与JDBC池的连接。目前我只是创建一个EbeanServer并使用它向数据库发出请求。

有人可以对这个话题有所了解。 PlayFramework,Ebean和HickariCP如何连接?我需要配置什么吗?我是否需要担心将此设置投入生产?

1 个答案:

答案 0 :(得分:3)

Play Framework

Play Framework是您用于开发应用程序的框架。几乎所有应用程序都需要某种数据存储,并且(在大多数情况下)由数据库提供。

连接池

现在,为了访问此数据库,您需要检索连接,然后使用这些连接 - 执行INSERTUPDATE等等。没有人会阻止你自己管理所有这些。但是有一些人对这个主题有了更好的了解,他们已经创建了所谓的连接池(CP)实现 - 这些是为你做大部分肮脏工作的库 - 他们关心获得有效的连接,他们关心管理一个“准备好”的连接池,这样你就不会浪费时间,他们关心正确关闭数据库连接等等。大多数情况下,您并没有直接与连接池实现进行交互。情况就是这样,因为作为开发人员,您需要更高层次的工作。

有不同的CP实施 - HikariCPBoneCPc3p0等。 Play Framework 2.4中的默认值是HikariCP,2.3中的一个是BoneCP。

ORM

与数据库连接一样,当使用某些模型并从数据库中保存/检索它们时,您不希望处理低级别的东西。你想要一些抽象。

在您的应用程序中,您已经建模了一些东西 - 比如一个在线商店 - 您有产品,订单,客户等等。您已经编写了一些代表这些实体的Java / Scala类 - Product.java包含一些字段,Order.java包含一些字段,依此类推。现在,如果你有一个关系数据库(想想PostgreSQL,Oracle,MySQL等),你知道你有包含行和列的表。因此,为了保存您的数据,您需要 映射 它到这个基于表的结构。这是ORM实现发挥作用的地方。 ORM是对象关系映射的缩写。这就像每个类和字段对应表和列的蓝图。

与连接池一样,有不同的ORM实现 - HibernateEbean等。 Ebean是以前Play版本中的默认版本。

Play Framework附带了一些默认设置。你可以完全自由地在Play中交换任何东西 - 你甚至可以改变模板引擎。好消息是这些是理智的默认设置 - 如果你想构建一些没有多少傻瓜的东西 - 只需从默认选择开始。如果你正确地构建所有,那么替换特定实现的努力应该是最小的。

关于生产设置的最后注意事项:如果没有适当的措施并且不了解您的使用案例,没有人可以说生产性能是否良好。您可以在此处阅读有关调整Play的JDBC端的更多信息:https://playframework.com/documentation/2.4.x/SettingsJDBC

我希望这能概述Play,HikariCP和Ebean之间的关系。