Высокоуровневый клиент
В разделе описываются составные части высокоуровневого клиента и примеры его использования.
Быстрый старт
- Запустите пустой
Tarantool:
Подключимся к Tarantool из java:
public class TestClass {
@Test
public void test() {
final TarantoolBoxClient client = TarantoolFactory.box().build();
// проверим, что мы подключились успешно и вернем версию Tarantool, к которому подключились
// должно вернуться "TarantoolResponse(data = [3.2.1-0-g219c4de1a88], formats = {})"
client.eval("return _TARANTOOL").join();
}
}
Создадим space
person, в который будем писать данные. Этот space создается без формата, и на него создается
первичный ключ (pk) по умолчанию, где первое поле имеет тип unsigned. Такой space может хранить
любые данные, при условии, что первое поле имеет тип unsigned, то есть это бессхемное хранение с
требованием к первичному ключу:
public class TestClass {
@Test
public void test() {
final TarantoolBoxClient client = TarantoolFactory.box().build();
// проверим, что мы подключились успешно и вернем версию Tarantool, к которому подключились
// должно вернуться "TarantoolResponse(data = [3.2.1-0-g219c4de1a88], formats = {})"
client.eval("return _TARANTOOL").join();
client.eval("return box.schema.create_space('person'):create_index('pk')").join();
}
}
Заметка
Можно задать более строгую схему хранения данных. Для этого выполните следующий код вместо предыдущего:
В предыдущих вызовах мы использовали метод eval, который доступен как для Box API клиента, так и
для Crud API клиента. Теперь, после создания спейса, мы можем воспользоваться методами Box API для
работы с данными. Box API используется для работы с отдельным экземпляром Tarantool. Даже в случае
кластера, Box API может быть применен для подключения к отдельным узлам.
public class TestClass {
@Test
public void test() {
final TarantoolBoxClient client = TarantoolFactory.box().build();
// проверим, что мы подключились успешно и вернем версию Tarantool, к которому подключились
// должно вернуться "TarantoolResponse(data = [3.2.1-0-g219c4de1a88], formats = {})"
client.eval("return _TARANTOOL").join();
client.eval("return box.schema.create_space('person'):create_index('pk')").join();
var space = client.space("person"); // получим спейс person
space.insert(Arrays.asList(1, "Hello World")).join(); // запишем один кортеж
var result = space.select(1).join(); // получим записанный кортеж
}
}