import com.datastax.driver.core.querybuilder.Insert; //导入方法依赖的package包/类
private static ListenableFuture toInsertStatementAsync(WriteQueryData data, ExecutionSpec executionSpec, UDTValueMapper udtValueMapper, DBSession dbSession) {
final Insert insert = (data.getTablename().getKeyspacename() == null) ? insertInto(data.getTablename().getTablename())
: insertInto(data.getTablename().getKeyspacename(), data.getTablename().getTablename());
final List values = Lists.newArrayList();
for(Entry> entry : data.getValuesToMutate().entrySet()) {
insert.value(entry.getKey(), bindMarker());
values.add(udtValueMapper.toStatementValue(data.getTablename(), entry.getKey(), entry.getValue().orNull()));
}
if (data.getIfNotExits() != null) {
insert.ifNotExists();
if (executionSpec.getSerialConsistencyLevel() != null) {
insert.setSerialConsistencyLevel(executionSpec.getSerialConsistencyLevel());
}
}
if (executionSpec.getTtl() != null) {
insert.using(ttl(bindMarker()));
values.add((Integer) executionSpec.getTtl());
}
final ListenableFuture preparedStatementFuture = dbSession.prepareAsync(insert);
return dbSession.bindAsync(preparedStatementFuture, values.toArray());
}