你当前正在访问 Microsoft Azure Global Edition 技术文档网站。 如果需要访问由世纪互联运营的 Microsoft Azure 中国技术文档网站,请访问 https://docs.azure.cn

com.microsoft.azure.storage.table

CloudTable

表示 Microsoft Azure 表服务中的表。

CloudTableClient

提供用于访问 Microsoft Azure 表服务的服务客户端。

CloudTableClient 封装表服务终结点的基 URI 和用于访问存储帐户的凭据,并提供用于创建、删除、列出和查询表的方法,以及对表实体执行操作和查询的方法。 这些方法调用存储服务 REST API 操作来发出请求并获取返回的结果。

表服务终结点是表服务资源的基 URI,包括存储帐户的 DNS 名称:

有关详细信息,请参阅 MSDN 主题 寻址表服务资源

凭据可以是存储帐户名称和密钥的组合,也可以是共享访问签名。 有关详细信息,请参阅 MSDN 主题 验证对存储帐户的访问权限

DynamicTableEntity

允许调用方直接访问实体属性映射的 TableEntity 类型。 此类扩展 TableServiceEntity 以消除对序列化和反序列化使用反射。

EntityProperty

一个类,它表示表实体中的单个类型化属性值。 将 EntityProperty 数据类型存储为 EdmType。 值(可能针对对象类型,但对于基元类型)进行序列化并存储为 。

EntityProperty 为支持的值类型提供 方法的重载构造函数和重载。 每个重载的构造函数或方法都会根据参数类型设置 EdmType 并相应地序列化值。

使用 Type 方法之一将 反序列化 EntityProperty 为适当的 Java 类型。 如果 无法将 反序列化为 Java 类型,EntityProperty则方法将引发 ParseExceptionIllegalArgumentException

QueryTableOperation

扩展为实现查询以检索单个表实体的类 TableOperation 。 若要执行 QueryTableOperation 实例,请在实例上 CloudTableClient 调用 方法。 此操作可以直接执行,也可以作为 的一 TableBatchOperation部分执行。 QueryTableOperation如果 返回实体结果,则它存储在 方法返回的相应 TableResult 中。

SharedAccessTablePolicy

表示共享访问策略,该策略指定共享访问签名的开始时间、到期时间和权限。

TableBatchOperation

表示批处理操作的类。 批处理操作是表操作的集合,存储服务 REST API 通过调用 实体组事务作为单个原子操作执行这些操作。

一个批处理操作最多可以包含 100 个不同的表操作,但要求是每个操作实体必须具有相同的分区键。 包含检索操作的批处理不能包含任何其他操作。 请注意,批处理操作的总负载限制为 4MB。

TableEncryptionPolicy

表示用于对 Azure 表实体执行信封加密/解密的表加密策略。

TableOperation

表示单个表操作的类。

使用静态工厂方法为插入、更新、合并、删除、替换或检索表实体的表的操作构造 TableOperation 实例。 若要执行 TableOperation 实例,请在实例上 CloudTableClient 调用 方法。 TableOperation可以直接执行,也可以作为 的一部分执行TableBatchOperationTableOperation如果 返回实体结果,则它存储在 方法返回的相应 TableResult 中。

TablePermissions

表示表的权限。

TableQuery<T>

一个类,它表示针对指定表的查询。 实例 TableQuery<T> 聚合在执行查询时要使用的查询参数。 必须调用 的 CloudTableClient 或 方法之一才能执行查询。 执行表查询时,参数将编码并传递到服务器。

若要使用流畅的语法创建表查询, from(final Class<T> clazzType) 静态工厂方法和 where(final String filter)select(final String[] columns)take(final Integer take) mutator 方法各自返回对 对象的引用,该引用可链接到单个表达式中。 from(Class)使用静态类工厂方法创建一个实例,该实例在具有指定TableEntity实现类型的实体的命名表上执行。 where(final String filter)使用 方法为返回的实体指定筛选表达式。 select(final String[] columns)使用 方法指定要返回的表实体属性。 take(final Integer take)使用 方法可限制查询返回的实体数。 请注意,不会阻止在 上多次调用这些方法,因此 保存在 中的值将是按执行顺序最后一次遇到的值。

例如,可以使用 fluent 语法构造表查询:

本示例针对 PartitionKey 值为“ProductsMNO”且 RowKey 值大于或等于“Napkin”的所有实体创建“Products”表的查询,并请求前 25 个匹配的实体,仅选择公共属性和名为“InventoryCount”的属性,并将其作为 DynamicTableEntity 对象返回。

可以使用 与 或 方法setFilterString(final String filterString)一起使用的where(final String filter)筛选表达式,使用 中定义的比较运算符和 combineFilters(String filterA, String operator, String filterB)Operators定义的QueryComparisons逻辑运算符,通过重载generateFilterCondition(String propertyName, String operation, final boolean value)方法和 方法使用 fluent 语法创建。 请注意,筛选器比较中的第一个操作数必须是属性名称,第二个操作数的计算结果必须为常量。 PartitionKey 和 RowKey 属性值是用于比较的类型。

可在表查询中使用的值在 MSDN 主题查询 表和实体中进行了更详细的说明,但请注意,值中的空格字符不需要进行 URL 编码,因为执行查询时会执行此操作。

构造 TableQuery#TableQuery(Class) 函数和 TableQuery#from(Class) 静态工厂方法需要实现并包含空构造函数的类类型 TableEntity 。 如果使用 执行 EntityResolver<T>查询,则调用方可以指定 TableServiceEntity 为 类类型。

TableRequestOptions

表示可以为表操作请求指定的一组超时、有效负载格式和重试策略选项。

TableResult

一个表示表操作结果的类。 类 TableResult 封装 HTTP 响应以及存储服务 REST API 操作为特定 TableOperation调用返回的任何表实体结果。

TableServiceEntity

TableServiceEntity 表示存储服务中表实体的基对象类型。 TableServiceEntity 为 接口提供了一个基本实现 TableEntity ,该接口提供 和 方法,默认情况下通过反射序列化和反序列化所有属性。 表实体类可以扩展此类并重写 和 方法,以提供自定义的或性能更高的序列化逻辑。

使用反射可以序列化和反序列化 的 TableServiceEntity 子类,而无需自行实现序列化代码。 如果同时找到给定属性名称和数据类型的 getter 方法和 setter 方法,则会自动调用相应的方法来序列化或反序列化数据。 若要利用自动序列化代码,表实体类应为 Microsoft Azure 表存储中相应表实体中的每个属性提供 getter 和 setter 方法。 反射代码在表单成对中查找 getter 和 setter 方法

其中 PropertyName 是表实体的属性名称, type 是与属性的 EDM 数据类型兼容的 Java 类型。 有关属性类型与其 Java 等效项的映射,请参阅下表。 StoreAs可以使用 特性应用批注,以指定属性名称,以便在不遵循属性名称约定的 getter 和 setter 方法上反射。 方法名称和批注的属性 StoreAs 区分大小写,用于将属性名称与反射匹配。 Ignore使用 注释可防止反射使用方法进行自动序列化和反序列化。 请注意,名称“PartitionKey”、“RowKey”、“Timestamp”和“Etag”是保留的,如果使用子类中的批注进行设置 StoreAs ,将忽略这些名称。

下表显示了 Microsoft Azure 存储中支持的属性数据类型,以及反序列化时对应的 Java 类型。

Microsoft Azure 存储中支持的属性数据类型

有关Microsoft Azure 存储服务中使用的表、实体和属性的概述,请参阅 MSDN 主题了解表服务数据模型

有关可用 EDM 基元数据类型和名称的概述,请参阅

OData 协议概述“基元数据类型”部分。

TableServiceException

表存储服务操作无法成功完成时导致异常。

TableQuery.Operators

将标识符映射到筛选表达式运算符的静态类。

TableQuery.QueryComparisons

一个静态类,用于映射标识符以筛选属性比较运算符。

接口

Encrypt

表示可用于指示是否应加密实体属性的自定义属性。 使用此注释指定是加密由 setter 方法存储的数据,还是解密实现 TableEntity的类中的 getter 方法检索的数据。

EntityResolver<T>

一个接口,用于对检索到的实体执行客户端投影。 实例 EntityResolver<T> 必须实现一个方法,该方法投影作为类型参数指定的类型的新实例传入的参数所表示的实体数据。

此接口可用于直接从表实体数据转换为客户端对象类型,而无需单独反序列化每个属性的表实体类类型。 例如,客户端只需返回每个实体的 CustomerName 属性的 ,即可执行 Customer 实体的客户端投影。 此预测的结果将是包含每个客户名称的 集合。

Ignore

在方法上设置的批注,用于防止在通过反射序列化或反序列化属性时使用它。 将注释应用于类中实现 TableEntity 的方法,以强制在基于反射的序列化和反序列化期间忽略它们。 有关使用基于反射的序列化和反序列化的详细信息,请参阅 相关文档 TableServiceEntity

StoreAs

用于替代属性的名称的批注,使用反射进行序列化和反序列化。 使用此注释指定属性名称,以便与使用基于反射的序列化和反序列化的类 TableEntity 中由 setter 方法存储的数据或由 getter 方法检索的数据相关联。 请注意,名称“PartitionKey”、“RowKey”、“Timestamp”和“Etag”是保留的,如果使用批注进行设置,则将被忽略。

示例:

此示例演示如何在默认情况下对获取和设置名为 ObjectPropertyName 的实体属性的方法进行批注,以获取和设置名为 EntityPropertyName 的实体属性。 有关使用基于反射的序列化和反序列化的详细信息,请参阅 相关文档 TableServiceEntity

TableEntity

表实体类型所需的接口。 接口 TableEntity 声明通用实体属性的 getter 和 setter 方法,以及使用属性映射对所有实体属性进行序列化和反序列化的方法。 创建实现 TableEntity 的类以自定义属性存储、检索、序列化和反序列化,并为表实体提供其他自定义逻辑。

存储客户端库包括 的 TableEntity 两个实现,这些实现提供简单的属性访问和序列化:

DynamicTableEntityTableEntity实现 并提供用于存储和检索属性的简单属性映射。 DynamicTableEntity当只有一部分属性 (例如,通过查询) 中的 select 子句返回,或者查询可以返回具有不同属性的多个实体类型时,请使用 用于对实体属性的简单访问。 也可以使用此类型对异构实体执行批量更新,而不会丢失属性信息。

TableServiceEntity 是 的 TableEntity 实现,它在其 和 方法中使用基于反射的序列化和反序列化行为。 TableServiceEntity具有遵循类型和命名约定的方法的 派生类会自动序列化和反序列化。

任何实现 的 TableEntity 类都可以通过调用 中的 和 中的静态方法,利用 中 TableServiceEntity 基于反射的自动序列化和反序列化行为。 类必须提供遵循类型和命名约定的方法,以便自动序列化和反序列化。 如果同时找到给定属性名称和数据类型的 getter 方法和 setter 方法,则会自动调用相应的方法来序列化或反序列化数据。 反射代码在表单成对中查找 getter 和 setter 方法

其中 PropertyName 是表实体的属性名称, type 是与属性的 EDM 数据类型兼容的 Java 类型。 有关属性类型与其 TableServiceEntity Java 等效项的映射,请参阅 的类说明中的表。 StoreAs可以使用 特性应用批注,以指定属性名称,以便在不遵循属性名称约定的 getter 和 setter 方法上反射。 方法名称和批注的属性 StoreAs 区分大小写,用于将属性名称与反射匹配。 Ignore使用 注释可防止反射使用方法进行自动序列化和反序列化。 请注意,名称“PartitionKey”、“RowKey”、“Timestamp”和“Etag”是保留的,如果使用反射方法的子类中的批注设置 StoreAs ,将忽略这些名称。

TableRequestOptions.EncryptionResolver

其函数用于获取指示是否应加密属性的值的接口,该接口具有分区键、行键和属性名称。

TableRequestOptions.PropertyResolver

其函数用于获取 EdmType 实体属性的 接口(如果已实现该接口,则给定分区键、行、键和属性名称)

枚举

EdmType

用于表示开放数据协议 ( (OData) 中 EDM) 实体数据模型的基元类型的枚举。 EDM 是 OData 服务使用的基础抽象数据模型。 枚举 EdmType 包括一个 parse(final String value) 方法,用于将 EDM 数据类型名称转换为枚举类型,并重写 toString() 方法以生成 EDM 数据类型名称。

有关 OData 的详细信息,请参阅 开放数据协议 网站。

有关可用 EDM 基元数据类型和名称的概述,请参阅 OData 协议概述基元数据类型部分。

[ MC-CSDL] 第 2.2.1 节 () 中详细定义了用于定义 OData 支持的基元类型的抽象类型系统。

SharedAccessTablePermissions

指定共享访问表策略的可能权限集。

TablePayloadFormat

描述表支持的负载格式。