

# DynamoDBMapper for Java 支持的数据类型
<a name="DynamoDBMapper.DataTypes"></a>

本部分介绍 Amazon DynamoDB 中支持的 Java 基元数据类型、集合和任意数据类型。

Amazon DynamoDB 支持以下基元 Java 数据类型和基元封装类。
+ `String`
+ `Boolean`, `boolean`
+ `Byte`, `byte`
+ `Date`（为 [ISO\$18601](http://en.wikipedia.org/wiki/ISO_8601) 毫秒精度字符串，转换为 UTC）
+ `Calendar`（为 [ISO\$18601](http://en.wikipedia.org/wiki/ISO_8601) 毫秒精度字符串，转换为 UTC）
+ `Long`, `long`
+ `Integer`, `int`
+ `Double`, `double`
+ `Float`, `float`
+ `BigDecimal`
+ `BigInteger`

**注意**  
有关 DynamoDB 命名规则和支持的各种数据类型的更多信息，请参阅[Amazon DynamoDB 中支持的数据类型和命名规则](HowItWorks.NamingRulesDataTypes.md)。
DynamoDBMapper 支持空二进制值。
空字符串值受 AWS SDK for Java 2.x 支持。  
在 AWS SDK for Java 1.x 中，DynamoDBMapper 支持读取空字符串属性值；但是，它不会写入空字符串属性值，因为这些属性会从请求中删除。

DynamoDB 支持 Java [Set](http://docs.oracle.com/javase/6/docs/api/java/util/Set.html)、[List](http://docs.oracle.com/javase/6/docs/api/java/util/List.html) 和 [Map](http://docs.oracle.com/javase/6/docs/api/java/util/Map.html) 集合类型。下表汇总了上述 Java 类型到 DynamoDB 类型的映射。


****  

| Java 类型 | DynamoDB 类型 | 
| --- | --- | 
|  所有数字类型  |  `N`（数字类型）  | 
|  字符串  |  `S`（字符串类型）   | 
|  布尔值  |  `BOOL`（布尔值类型），0 或 1。  | 
|  字节缓冲区  |  `B`（二进制类型）  | 
|  日期  |  `S`（字符串类型）。日期值存储为符合 ISO-8601 格式的字符串。  | 
| [Set](http://docs.oracle.com/javase/6/docs/api/java/util/Set.html) 集合类型 |  `SS` (字符串集) 类型、`NS` (数字集) 类型或 `BS` (二进制集) 类型。  | 

 `DynamoDBTypeConverter` 接口可让您将自己的任意数据类型映射到受 DynamoDB 原生支持的数据类型。有关更多信息，请参阅 [在 DynamoDB 中映射任意数据](DynamoDBMapper.ArbitraryDataMapping.md)。