
# java.sql.Struct
java.sql.Struct接口是JDBC对SQL结构化类型的映射，Struct对象包含其所代表的SQL结构化类型的每个属性值，提供了将SQL数据以数组的形式传输到客户端的方法。
表1java.sql.Struct常用方法 
| 方法名                                                   | 返回值类型      | throws       | 支持情况 |
|:---|:---|:---|:---|
| getSQLTypeName()                                      | String     | SQLException | Yes  |
| getAttributes()                                       | Object\[\] | SQLException | Yes  |
| getAttributes(java.util.Map\<String,Class\<?\>\> map) | Object\[\] | SQLException | No   |
   
![](https://support.huaweicloud.com/distributed-devg-v10-gaussdb/public_sys-resources/note_3.0-zh-cn.png)
- getAttribute接口获取的对象类型为Object\[\]，返回的数组中每个元素的类型可参考[数据类型映射关系](https://support.huaweicloud.com/distributed-devg-v10-gaussdb/gaussdb-12-0309.html)的JAVA变量类型列。
  例如：对于record(c1 int, c2 varchar(5))类型，getAttribute返回Object\[\]中第一个元素为null或者Integer类型数据，第二个元素为null或者String类型数据。
  特殊说明：元素类型为int2/smallint，元素存取为Short类型。
  
- getSQLTypeName接口返回的类型名可参考[数据类型映射关系](https://support.huaweicloud.com/distributed-devg-v10-gaussdb/gaussdb-12-0309.html)，其中集合类型、数组类型、record类型的类型名映射规则如下。
  1. 若为package里定义的类型，类型名的格式通常为schema.package.type，须符合以下命名规则：
     - 只能包含字母、数字、下划线。
     
     - 第一个字符不能是数字。
     
     
     若schema、package、type中有任意名称不符合命名规则，则需要加引号，即使用"schema"."package"."type"格式。
     
  
  2. 若为schema里定义的类型，类型名的格式通常为schema.type，须符合以下命名规则：
     - 只能包含字母、数字、下划线。
     
     - 第一个字符不能是数字。
     
     
     若schema、type中有任意名称不符合命名规则，则需要加引号，即使用"schema"."type"格式。
     
   
 
