云网站服务器_国内数据云存储_移动云数据库服务器主机-搜集站云

专属服务器_南宁市网站建设_限时特惠

小七 141 0

专属服务器_南宁市网站建设_限时特惠

从以前所有的博客中可以看出,我们的主要任务是:提供数据??对?->那么请从博客1开始…(让我知道我是否应该解释得更好……

毫无疑问?不?->酷,那我们继续吧。

存储和提供结构化数据的一种有意义的方式是地图更具体:java.util.Map文件它非常适合存储一对propertyName和propertyValue伟大的。不过,SDK还支持另外两种格式:

到目前为止,我们一直将数据存储在地图中,在本博客中我们将对另外两种格式进行介绍。我考虑过创建使用两种格式甚至组合的示例代码。准备好了吗?不?->那么请从blog 1开始

所有其他:让我们从POJO开始

这个术语代表"普通的旧Java对象",在我们的上下文中也是这样使用的。它只是一个简单的Java类,包含成员变量和相应的getter/setter因此,它是存储值(成员变量)和访问它们(getter方法)的非常方便的方法最大的优点是使用方便。直观。和类型安全。

比较:

使用地图:

使用POJO

如您所见,它是更易于使用,处理字符串时不容易出错,没有演员阵容

但是,除了这些明显的优点外,还有一个缺点:代码的创建:创建每个Java类,淘客app系统,键入所有成员、所有getter和所有setter。此外,变量的名称必须与edmx中定义的属性的名称完全匹配。你可能会在输入pojo时变老…

但是不要放弃…

SDK提供了一些神奇的支持,你不会感到惊讶…SDK,我们的好朋友…看看我们的朋友能为我们做些什么:SDK能够基于您的ODataV4模型生成POJO

POJO生成器插入maven构建中,我的意思是:在使用maven构建项目时,maven构建可以生成POJO类。

可以通过在maven命令中添加一个参数来激活生成:

示例:

可能如下所示它看起来更真实:

好的,但是现在是时候把手弄脏了-但是不要太脏,爱返利,因为我们有POJOnator请注意,这不是官方名称!只是我喜欢这样温柔地称呼他……

和往常一样,在创建了一个新项目之后,我们创建了一个模型文件(如果你有疑问,你不需要从头开始,大数据包括,只需要看看这里)。

我想过创建一个没有什么不同工件的模型,因此POJOnator有一些有趣的工作要做:

一旦你创建了你的项目并添加了包含上述内容的xml文件,你就可以开始你的maven初始构建了。

例如:

(这个命令稍微快一点,我们只需要它来生成pojo)

一旦maven构建完成了,您可以在控制台窗口中搜索POJOnator编写的输出

正如您所观察到的,已经为每个OData工件生成了一个Java类。此外,这些类已经生成到一个新的包中。所有的名称都是从模型中派生出来的,包名还考虑了maven pom

您可能希望阅读nice文档以获取更多信息。

maven构建成功后,您可能需要刷新Eclipse项目中的java文件夹,以使生成的类可见。

一旦可见,在我们的示例中,它看起来是这样的:

为了方便起见,我创建了下面的屏幕截图,以显示Java类是如何从OData模型派生的。

我拒绝绘制箭头-你可以自己做,作为家庭作业…

POJO看起来是什么样子?

让我们来看看POJO例如persone.

我们可以看到:

实体类型

Java类的名称与实体类型的名称匹配,并附加后缀ET为每个OData属性生成了一个Java成员变量每个变量的名称与对应的OData属性的名称完全相同请注意,它区分大小写我们可以看到有一个注释:它标记哪些成员变量对应于key属性getter和setter也生成得很好。这对我们很重要,因为我们将大量使用它们。数据类型也根据OData数据类型生成。匹配的数据类型可以参考docu

实体集

与实体集对应的POJO的名称再次具有相同的名称,但附加了ES。原因是在OData中,实体类型和实体集的名称可以相等。此外,可以有多个实体集指向同一实体类型。这就是为什么我们需要实体集的额外pojo。但是,为了避免冗余,实体集pojo是实体类型pojo的子类

复杂类型

复杂类型也是数据结构,因此将其视为实体类型。它没有键注释上面的实体类型使用复杂类型,所以POJO有一个AddressCT类型的成员变量,它是为复杂类型生成的POJO。

这不是很好吗?正如我们预期的那样,

导航属性

如果是$expand,可以填写导航属性的Java变量。成员变量的Java类型取决于OData模型中导航属性的关系。在下面的示例中,我们可以看到特定于多关系的OData是如何在Java中反映的:

如何使用POJO?

我们对待POJO就像对待普通Java类一样:实例化它并使用setter用数据填充POJO:

将此代码片段与使用映射的备选代码片段进行比较:

对于每个值,我们必须键入(正确!)属性的名称-在这里没有POJOnator可以帮助我们…

现在让我们比较@Query实现:

首先使用Map和setDataAsMap(List)方法的列表

现在使用POJO,我们传递一个POJO列表并使用另一个setData()方法

我相信现在已经很清楚了,您可以在本页末尾找到完整的源代码。(如果不清楚,请从…开始,并让我知道…