QueryResultMetaData { public Optional<ShardingEncryptor> getShardingEncryptor(final int columnIndex) throws SQLException { String logicTable = getTableName(columnIndex); return encryptRule.getShardingEncryptor(logicTable, getLogicColumn(logicTable, columnIndex)); } QueryResultMetaData(final ResultSetMetaData resultSetMetaData, final ShardingRule shardingRule);  QueryResultMetaData(final ResultSetMetaData resultSetMetaData, final EncryptRule encryptRule);  QueryResultMetaData(final ResultSetMetaData resultSetMetaData); int getColumnCount(); String getColumnLabel(final int columnIndex); String getColumnName(final int columnIndex); Integer getColumnIndex(final String columnLabel); boolean isCaseSensitive(final int columnIndex); Optional<ShardingEncryptor> getShardingEncryptor(final int columnIndex);  }
@Test public void assertGetShardingEncryptor() throws SQLException { assertTrue(queryResultMetaData.getShardingEncryptor(1).isPresent()); assertThat(queryResultMetaData.getShardingEncryptor(1).get(), is(shardingEncryptor)); }