库 appengine.api.datastore 和 com.google.cloud.datastore 有啥区别?

Posted

技术标签:

【中文标题】库 appengine.api.datastore 和 com.google.cloud.datastore 有啥区别?【英文标题】:What is the difference between libraries appengine.api.datastore and com.google.cloud.datastore?库 appengine.api.datastore 和 com.google.cloud.datastore 有什么区别? 【发布时间】:2017-04-11 09:35:14 【问题描述】:

我正在开发一个 appengine 项目并使用 Google Datastore 存储我的数据。我正在使用不同的 Datastore 库,因为它们是示例中使用的库,但我发现我必须同时使用这两种库有点奇怪:

如果我检查文档以进行查询,在此示例中,他们使用此库来处理查询:

com.google.appengine.api.datastore

https://cloud.google.com/appengine/docs/java/datastore/retrieving-query-results

DatastoreService 数据存储 = DatastoreServiceFactory.getDatastoreService(); PreparedQuery pq = datastore.prepare(q);实体结果 = pq.asSingleEntity();

然而,在这个例子中为了存储数据,他们使用了

com.google.cloud.datastore

https://cloud.google.com/datastore/docs/concepts/entities

实体任务 = Entity.builder(taskKey) .set("类别", "个人") .set(“完成”,假) .set("优先级", 4) .set("描述", "学习云数据存储") .build();

现在我可以同时使用这两种方法,但我想知道哪一种更适合哪种用途,或者它们是否只是具有不同包的相同库。但是,我正在寻找一种方法来删除其中一个。

【问题讨论】:

【参考方案1】:

com.google.appengine.api.datastore - 专为在 AppEngine 上部署的应用程序工作而设计。如果您稍后决定将您的应用程序部署到其他地方(例如 Compute Engine),该 API 将不起作用。

com.google.cloud.datastore - 是一种新的 API,允许您从部署在任何地方的应用程序访问数据存储区,而不仅仅是 AppEngine。

com.google.appengine.api.datastore - 有一些其他人没有的附加功能(至少现在还没有)。例如,您的数据存储区查询中的OR 条件、与其他 AppEngine 服务(如 MemCache、全文搜索等)集成的能力。

【讨论】:

所以也许使用新的更好?除非我需要任何尚未包含的方法 就我的目的而言,我发现 appengine 的数据存储功能非常强大。

以上是关于库 appengine.api.datastore 和 com.google.cloud.datastore 有啥区别?的主要内容,如果未能解决你的问题,请参考以下文章

静态库与动态库注入

iOS 动态库+静态库

C语言里面的动态库和静态库

关于动态库和静态库的问题。

动态库和静态库的区别

[Linux 高并发服务器]制作静态库与动态库