类java.sql.Array源码实例Demo

下面列出了怎么用java.sql.Array的API类实例代码及写法,或者点击链接到github查看源代码。

源代码1 项目: phoenix   文件: ArrayAppendFunctionIT.java
@Test
public void testArrayAppendFunctionCharsWithNull() throws Exception {
    Connection conn = DriverManager.getConnection(getUrl());
    String tableName = initTables(conn);

    ResultSet rs;
    rs = conn.createStatement().executeQuery("SELECT ARRAY_APPEND(chars,NULL) FROM " + tableName + " WHERE region_name = 'SF Bay Area'");
    assertTrue(rs.next());

    String[] strings = new String[]{"a", "bbbb", "c", "ddd", "e"};

    Array array = conn.createArrayOf("CHAR", strings);

    assertEquals(array, rs.getArray(1));
    assertFalse(rs.next());
}
 
源代码2 项目: calcite-avatica   文件: ArrayTypeTest.java
@Test public void shortArraysWithNull() throws Exception {
  final Random r = new Random();
  try (Connection conn = DriverManager.getConnection(url)) {
    ScalarType component = ColumnMetaData.scalar(Types.SMALLINT, "SMALLINT", Rep.SHORT);
    List<Array> arrays = new ArrayList<>();
    // Construct the data
    for (int i = 0; i < 5; i++) {
      List<Short> elements = new ArrayList<>();
      for (int j = 0; j < 4; j++) {
        short value = (short) r.nextInt(Short.MAX_VALUE);
        // 50% of the time, negate the value
        if (0 == r.nextInt(2)) {
          value *= -1;
        }
        elements.add(Short.valueOf(value));
      }
      elements.add(null);
      arrays.add(createArray("SMALLINT", component, elements));
    }
    // Verify read/write
    writeAndReadArrays(conn, "short_arrays", "SMALLINT", component, arrays,
        PRIMITIVE_LIST_VALIDATOR);
  }
}
 
源代码3 项目: micro-integrator   文件: SQLQuery.java
/**
 * Processes a SQL Array instance and transform it into a ParamValue
 * instance
 *
 * @param dataArray
 *            SQLArray instance
 * @param paramValue
 *            Container into which the SQLArray elements should be populated
 * @return ParamValue instance containing all the elements of the
 *         corresponding SQLArray instance
 * @throws SQLException
 *             When it fails to processes the result set produced by the
 *             SQLArray instance
 */
private ParamValue processSQLArray(Array dataArray, ParamValue paramValue) throws SQLException {
    ResultSet rs = null;
    try {
        rs = dataArray.getResultSet();
        while (rs.next()) {
            Object arrayEl = rs.getObject(2);
            if (arrayEl instanceof Struct) {
                paramValue.getArrayValue().add(new ParamValue((Struct) arrayEl));
            } else if (arrayEl instanceof Array) {
                paramValue.getArrayValue().add(
                        processSQLArray((Array) arrayEl, new ParamValue(
                                ParamValue.PARAM_VALUE_ARRAY)));
            } else {
                paramValue.getArrayValue().add(new ParamValue(String.valueOf(arrayEl)));
            }
        }
        return paramValue;
    } finally {
        this.releaseResources(rs, null);
    }
}
 
源代码4 项目: mybaties   文件: SPTest.java
@Test
public void testGetNamesWithArray_a2() throws SQLException {
  SqlSession sqlSession = sqlSessionFactory.openSession();
  try {
    SPMapper spMapper = sqlSession.getMapper(SPMapper.class);

    Array array = sqlSession.getConnection().createArrayOf("int", new Integer[] { 1, 2, 5 });

    Map<String, Object> parms = new HashMap<String, Object>();
    parms.put("ids", array);
    List<Name> names = spMapper.getNamesWithArrayAnnotatedWithXMLResultMap(parms);
    Object[] returnedIds = (Object[]) parms.get("returnedIds");
    assertEquals(4, returnedIds.length);
    assertEquals(3, parms.get("requestedRows"));
    assertEquals(2, names.size());
  } finally {
    sqlSession.close();
  }
}
 
源代码5 项目: dalesbred   文件: InstantiatorProvider.java
private @NotNull Optional<TypeConversion> findArrayConversion(@NotNull Type source, @NotNull Type target) {
    Class<?> rawTarget = rawType(target);

    if (isAssignable(Array.class, source)) {
        if (rawTarget.equals(Set.class))
            return Optional.of(SqlArrayConversion.sqlArray(typeParameter(target), this, LinkedHashSet::new));

        if (rawTarget.isAssignableFrom(List.class))
            return Optional.of(SqlArrayConversion.sqlArray(typeParameter(target), this, Function.identity()));

        if (rawTarget.isArray())
            return Optional.of(SqlArrayConversion.sqlArray(rawTarget.getComponentType(), this, list -> arrayOfType(rawTarget.getComponentType(), list)));
    }

    return Optional.empty();
}
 
源代码6 项目: phoenix   文件: StringToArrayConverterTest.java
@Test
public void testToArray_IntegerValues() throws SQLException {
    StringToArrayConverter intArrayConverter = new StringToArrayConverter(
        conn, ":", PInteger.INSTANCE);
    Array intArray = intArrayConverter.toArray("1:2:3");
    assertArrayEquals(
            new int[]{1, 2, 3},
            (int[]) intArray.getArray());
}
 
源代码7 项目: calcite-avatica   文件: TypedValue.java
/** Creates a TypedValue from a value in JDBC representation. */
public static TypedValue ofJdbc(ColumnMetaData.Rep rep, Object value,
    Calendar calendar) {
  if (value == null) {
    return EXPLICIT_NULL;
  }
  final Object serialValue;
  if (ColumnMetaData.Rep.ARRAY == rep) {
    // Sanity check that we were given an Array
    if (null != value && !(value instanceof Array)) {
      throw new IllegalArgumentException("Provided Rep was ARRAY, but the value was "
          + value.getClass());
    }
    final Array array = (Array) value;
    try {
      SqlType type = SqlType.valueOf(array.getBaseType());
      serialValue = jdbcToSerial(rep, array, calendar, type);
      // Because an Array may have null entries, we must always return the non-primitive type
      // variants of the array values.
      return new TypedValue(rep, Rep.nonPrimitiveRepOf(type), serialValue);
    } catch (SQLException e) {
      throw new RuntimeException("Could not extract Array component type", e);
    }
  } else {
    serialValue = jdbcToSerial(rep, value, calendar);
  }
  return new TypedValue(rep, serialValue);
}
 
@Override
public float[] get(ResultSet target) throws Exception {
    Array sqlArray = target.getArray(index);

    if (sqlArray != null) {
        float[] array = INIT;
        int capacity = 0;
        int size = 0;

        ResultSet rs = sqlArray.getResultSet();
        try {
            while (rs.next()) {
                if (size >= capacity) {
                    int newCapacity = Math.max(Math.max(capacity + 1, capacity + (capacity >> 1)), 10);
                    array = Arrays.copyOf(array, newCapacity);
                    capacity = newCapacity;
                }
                array[size++] = rs.getFloat(VALUE_INDEX);
            }
        } finally {
            rs.close();
        }

        return Arrays.copyOf(array, size);
    }

    return null;
}
 
源代码9 项目: mmpt   文件: IntegerArrayTypeHandler.java
@Override
public Integer[] getNullableResult(ResultSet rs, String columnName)
        throws SQLException {
    Array outputArray = rs.getArray(columnName);
    if (outputArray == null) {
        return null;
    }
    return (Integer[])outputArray.getArray();
}
 
源代码10 项目: lutece-core   文件: DAOUtil.java
/**
 * Register an SQL Array to be able to free it later
 * 
 * @param array
 *            the array to register
 */
private void registerArray( Array array )
{
    if ( _arrays == null )
    {
        _arrays = new ArrayList<>( );
    }
    _arrays.add( array );
}
 
源代码11 项目: dragonwell8_jdk   文件: SQLOutputImplTests.java
@Test(enabled = true)
public void test04() throws Exception {
    Object[] coffees = new Object[]{"Espresso", "Colombian", "French Roast",
        "Cappuccino"};
    Array a = new StubArray("VARCHAR", coffees);
    outImpl.writeArray(a);
    SerialArray sa = (SerialArray) results.get(0);
    assertTrue(Arrays.equals(coffees, (Object[]) sa.getArray()));
    assertTrue(a.getBaseTypeName().equals(sa.getBaseTypeName()));
}
 
@Test
public void successfullyArray() throws Exception {
    withNewConnection(connection -> {
        Statement statement = connection.createStatement();

        // Array(UInt8)
        ResultSet rs = statement.executeQuery("SELECT [[1], [2], [3], [4,5,6]] from numbers(10)");

        for (int i = 0; i < 10; i ++) {
            Assert.assertTrue(rs.next());
            Array array1 = rs.getArray(1);
            Object[] objects = (Object[]) array1.getArray();
            Assert.assertEquals(objects.length, 4);

            ClickHouseArray a1 = (ClickHouseArray)(objects[0]);
            ClickHouseArray a2 = (ClickHouseArray)(objects[1]);
            ClickHouseArray a3 = (ClickHouseArray)(objects[2]);
            ClickHouseArray a4 = (ClickHouseArray)(objects[3]);

            Assert.assertArrayEquals((Object[]) a1.getArray(), new Short[]{(short) 1});
            Assert.assertArrayEquals((Object[]) a2.getArray(), new Short[]{(short) 2});
            Assert.assertArrayEquals((Object[]) a3.getArray(), new Short[]{(short) 3});
            Assert.assertArrayEquals((Object[]) a4.getArray(), new Short[]{(short) 4, (short)5, (short)6});
        }
        Assert.assertFalse(rs.next());
    });
}
 
源代码13 项目: mmpt   文件: BooleanArrayTypeHandler.java
@Override
public Boolean[] getNullableResult(ResultSet rs, int columnIndex)
        throws SQLException {
    Array outputArray = rs.getArray(columnIndex);
    if (outputArray == null) {
        return null;
    }
    return (Boolean[])outputArray.getArray();
}
 
源代码14 项目: phoenix   文件: PhoenixArray.java
@Override
public Object convertObjectArrayToPrimitiveArray(Object[] elements) {
	Object object = java.lang.reflect.Array.newInstance(int.class,
			elements.length);
	intArr = (int[]) object;
	int i = 0;
	for(Object o : elements) {
	    if (o != null) {
	        intArr[i] = (Integer)o;
	    }
	    i++;
	}
	return intArr;
}
 
源代码15 项目: jdk8u-jdk   文件: BaseRowSetTests.java
@DataProvider(name = "testAdvancedParameters")
private Object[][] testAdvancedParameters() throws SQLException {

    byte[] bytes = new byte[10];
    Ref aRef = new SerialRef(new StubRef("INTEGER", query));
    Array aArray = new SerialArray(new StubArray("INTEGER", new Object[1]));
    Blob aBlob = new SerialBlob(new StubBlob());
    Clob aClob = new SerialClob(new StubClob());
    Reader rdr = new StringReader(query);
    InputStream is = new StringBufferInputStream(query);;
    brs = new StubBaseRowSet();
    brs.setBytes(1, bytes);
    brs.setAsciiStream(2, is, query.length());
    brs.setRef(3, aRef);
    brs.setArray(4, aArray);
    brs.setBlob(5, aBlob);
    brs.setClob(6, aClob);
    brs.setBinaryStream(7, is, query.length());
    brs.setUnicodeStream(8, is, query.length());
    brs.setCharacterStream(9, rdr, query.length());

    return new Object[][]{
        {1, bytes},
        {2, is},
        {3, aRef},
        {4, aArray},
        {5, aBlob},
        {6, aClob},
        {7, is},
        {8, is},
        {9, rdr}
    };
}
 
源代码16 项目: phoenix   文件: RegexpSplitFunctionIT.java
@Test
public void testSplit_NoSplitString() throws SQLException {
    Connection conn = DriverManager.getConnection(getUrl());
    initTable(conn, "CANNOT BE SPLIT");

    ResultSet rs = conn.createStatement().executeQuery(
            "SELECT REGEXP_SPLIT(VAL, ',') FROM SPLIT_TEST");
    assertTrue(rs.next());
    Array array = rs.getArray(1);
    String[] values = (String[]) array.getArray();
    assertArrayEquals(new String[] { "CANNOT BE SPLIT" }, values);
}
 
源代码17 项目: phoenix   文件: StringToArrayConverterTest.java
@Test
public void testToArray_MultipleElements() throws SQLException {
    Array multiElementArray = converter.toArray("one:two");
    assertArrayEquals(
            new Object[]{"one", "two"},
            (Object[]) multiElementArray.getArray());
}
 
源代码18 项目: tddl   文件: MockResultSet.java
public void updateArray(String columnName, Array x) throws SQLException {
    throw new NotSupportException("updateArray(String columnName, Array x)");
}
 
源代码19 项目: java-jdbc   文件: TracingPreparedStatement.java
@Override
public void setArray(int parameterIndex, Array x) throws SQLException {
  preparedStatement.setArray(parameterIndex, x);
}
 
源代码20 项目: mybaties   文件: ArrayTypeHandler.java
@Override
public void setNonNullParameter(PreparedStatement ps, int i, Object parameter, JdbcType jdbcType) throws SQLException {
  ps.setArray(i, (Array) parameter);
}
 
源代码21 项目: dremio-oss   文件: DremioResultSetImpl.java
@Override
public Array getArray( int columnIndex ) throws SQLException {
  throwIfClosed();
  return super.getArray( columnIndex );
}
 
源代码22 项目: doma   文件: MockResultSet.java
@Override
public void updateArray(int columnIndex, Array x) throws SQLException {
  AssertionUtil.notYetImplemented();
}
 
源代码23 项目: ultm   文件: WrappedConnection.java
@Override
public Array createArrayOf(String typeName, Object[] elements) throws SQLException {
    return delegate.createArrayOf(typeName, elements);
}
 
源代码24 项目: hottub   文件: StubFilteredRowSetImpl.java
@Override
public void updateArray(int columnIndex, Array x) throws SQLException {
    throw new UnsupportedOperationException("Not supported yet.");
}
 
源代码25 项目: tddl5   文件: ResultSetAutoCloseConnection.java
public void updateArray(String columnLabel, Array x) throws SQLException {
    rs.updateArray(columnLabel, x);
}
 
源代码26 项目: tddl   文件: MockResultSet.java
public void updateArray(int columnIndex, Array x) throws SQLException {
    throw new NotSupportException("updateArray(int columnIndex, Array x)");
}
 
源代码27 项目: openjdk-jdk9   文件: StubJoinRowSetImpl.java
@Override
public void updateArray(String columnLabel, Array x) throws SQLException {
    throw new UnsupportedOperationException("Not supported yet.");
}
 
源代码28 项目: Agent-Benchmarks   文件: SimulateResultSet.java
@Override public Array getArray(int columnIndex) throws SQLException {
    return null;
}
 
源代码29 项目: calcite-avatica   文件: ArrayTypeTest.java
@Override public void validate(Array expected, Array actual) throws SQLException {
  assertEquals(AvaticaUtils.primitiveList(expected.getArray()),
      AvaticaUtils.primitiveList(actual.getArray()));
}
 
源代码30 项目: tangyuan2   文件: ArrayTypeHandler.java
@Override
public Object getNullableResult(ResultSet rs, String columnName) throws SQLException {
	Array array = rs.getArray(columnName);
	return array == null ? null : array.getArray();
}