#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
pdf-btn 下载文档 copy-btn 复制链接
edit-icon
反馈
coperate-icon
coperate
合作
communication-icon
communicate
交流