#java.sql.Array
# 描述
Array用来表示数据库中的Array和Nested Table类型的数据。
java.sql.Array是JDBC规范中用于映射数据库数组类型的核心接口,核心作用是:将数据库中定义的数组类型字段读取为Java程序可操作的对象,也可将Java中的数组写入到数据库的数组类型字段中。
详细接口说明请参考JDBC官方网站 (opens new window)。
# 方法
java.sql.Array包含以下方法:
| 方法 | 返回类型 | 备注 |
|---|---|---|
| free() | void | 释放Array对象。 |
| getBaseTypeName() | String | 返回Array数据类型名称。 |
| getBaseType() | int | 返回Array数据类型码。 |
| getArray() | Object | 返回Array数据类型。 |
| getArray(Map<String, Class<?>> map) | Object | 添加UDT类型映射集合,对Array数据进行解析映射,返回对应的数据对象。 |
| getArray(long index, int count) | Object | 返回(index至index+count)范围的数据。 |
| getArray(long index, int count, Map<String, Class<?>> map) | Object | 添加UDT类型映射集合,对Array数据进行解析映射,返回(index至index+count)范围的数据。 |
| getResultSet() | ResultSet | 返回Array数据的ResultSet结果集,ResultSet结果集有两列,第一列为数据在原Array中的index,从1开始,第二列为真实数据。 |
| getResultSet(Map<String, Class<?>> map) | ResultSet | 添加UDT类型映射集合,返回Array数据的ResultSet结果集,ResultSet列信息同上。 |
| getResultSet(long index, int count) | ResultSet | 返回(index至index+count)范围的数据对应的ResultSet结果集,ResultSet列信息同上。 |
| getResultSet(long index, int count, Map<String, Class<?>> map) | ResultSet | 添加UDT类型映射集合,返回(index至index+count)范围的数据对应的ResultSet结果集,ResultSet列信息同上。 |
# 示例
package quickstart;
import com.yashandb.jdbc.YasConnection;
import java.sql.Array;
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.util.Arrays;
public class ArrayExample {
public static Connection getConnection() throws SQLException, ClassNotFoundException {
String url = "jdbc:yasdb://192.168.1.2:1688/yasdb";
String user = "username";
String password = "passwd";
Class.forName("com.yashandb.jdbc.Driver");
return DriverManager.getConnection(url, user, password);
}
public static void readArrayData(Connection conn) throws SQLException {
YasConnection yasConnection = (YasConnection) conn;
Array array = yasConnection.createArray("INT_ARRAY", new Object[]{10, 20, 30});
System.out.println(Arrays.toString((Object[]) array.getArray()));
array.free();
}
public static void main(String[] args) {
try (Connection conn = getConnection()) {
readArrayData(conn);
System.out.println("Array data read successfully");
} catch (ClassNotFoundException | SQLException e) {
e.printStackTrace();
}
}
}
正常情况下,程序输出如下:
[10, 20, 30]
Array data read successfully

