Java SelectItem类使用实例

时间:2022-05-20
本文章向大家介绍Java SelectItem类代码示例,你可以查看下面代码实例来了解Java SelectItem类的使用方法及注意事项。文章结合实例形式分析了其使用技巧,希望通过本文能帮助到大家理解应用这部分内容。

实例1: insertScript

import org.apache.metamodel.query.SelectItem; //导入依赖的package包/类
private UpdateScript insertScript() {
	UpdateScript insertScrript = new UpdateScript() {

		public void run(UpdateCallback callback) {
			Object value = null;
			RowInsertionBuilder insertData = callback.insertInto(table);
			for(Row rows: row){
				for (SelectItem column : rows.getSelectItems()) {
					if (!column.getColumn().getType().isTimeBased()) {
						value = rows.getValue(column);
					} else {
						value = ElementParser.getDate(rows.getValue(column));
					}
					insertData.value(column.getColumn(), value);
				}
				requests.mark();
				insertData.execute();
			}
	
			

		}
	};

	return insertScrript;
}
 

实例2: containsInputColumn

import org.apache.metamodel.query.SelectItem; //导入依赖的package包/类
@Override
public boolean containsInputColumn(final InputColumn<?> inputColumn) {
    if (!inputColumn.isPhysicalColumn()) {
        return false;
    }
    final Column physicalColumn = inputColumn.getPhysicalColumn();
    final List<SelectItem> selectItems = _row.getSelectItems();
    for (final SelectItem selectItem : selectItems) {
        if (selectItem.getColumn() != null && selectItem.getAggregateFunction() == null) {
            final Column column = selectItem.getColumn();
            if (physicalColumn.equals(column)) {
                return true;
            }
        }
    }
    return false;
}
 

实例3: testDelegateOnPhysicalColumn

import org.apache.metamodel.query.SelectItem; //导入依赖的package包/类
public void testDelegateOnPhysicalColumn() throws Exception {
    final Column col1 = new MutableColumn("foo");
    final InputColumn<?> inputColumn1 = new MetaModelInputColumn(col1);

    final Column col2 = new MutableColumn("bar");
    final InputColumn<?> inputColumn2 = new MetaModelInputColumn(col2);

    final SelectItem[] selectItems = new SelectItem[] { new SelectItem(col1), new SelectItem(col2) };
    final Object[] values = new Object[] { 1234, 4567 };
    final DataSetHeader header = new SimpleDataSetHeader(selectItems);
    final TransformedInputRow row =
            new TransformedInputRow(new MetaModelInputRow(0, new DefaultRow(header, values)), 1);

    assertEquals(1234, row.getValue(inputColumn1));
    assertEquals(4567, row.getValue(inputColumn2));
}
 

实例4: materializeMainSchemaTable

import org.apache.metamodel.query.SelectItem; //导入依赖的package包/类
@Override
protected DataSet materializeMainSchemaTable(final Table table, final List<Column> columns, final int maxRows) {
    final SelectItem[] tableSelectItems = MetaModelHelper.createSelectItems(table.getColumns().toArray(new Column[0]));
    final SelectItem[] selectItems = MetaModelHelper.createSelectItems(columns.toArray(new Column[0]));
    final SimpleDataSetHeader header = new SimpleDataSetHeader(tableSelectItems);

    final List<Row> rows = new ArrayList<>();
    
    final SimpleDataSetHeader subSelectionHeader = new SimpleDataSetHeader(selectItems);

    rows.add(new DefaultRow(header, new Object[] { 1, "hello" }).getSubSelection(subSelectionHeader));
    rows.add(new DefaultRow(header, new Object[] { 2, "there" }).getSubSelection(subSelectionHeader));
    rows.add(new DefaultRow(header, new Object[] { 3, "big" }).getSubSelection(subSelectionHeader));
    rows.add(new DefaultRow(header, new Object[] { 4, "wide" }).getSubSelection(subSelectionHeader));
    rows.add(new DefaultRow(header, new Object[] { 5, "world" }).getSubSelection(subSelectionHeader));

    return new InMemoryDataSet(rows);
}