суббота, 9 июня 2012 г.

Пост 6. CRUD. Retrieve.
Доброго времени суток!
Итак едем дальше! Записывать данные в базу мы воде бы как научились. Теперь хочется научиться читать данные из нее. Ну что же это проще простого:)
Начнем с простого получения одной записи. Используя уже созданные пакеты пишем что то вроде того(прости те мое RDBMS-овское прошлое, не смог удержаться от select =)  ):

import java.util.ArrayList;
import java.util.Iterator;
import java.util.List;
import java.util.SortedMap;
import java.util.concurrent.TimeUnit;
import oracle.kv.*;

public class RetrieveNoConnect {

    public static String SelectRow(String sKey, KVStore myStore) {
        data = null;
        Key myKey = ParseKey.ParseKey(sKey);
        try {
            ValueVersion vv = myStore.get(myKey);
            Value v = vv.getValue();
            data = new String(v.getValue());
        } catch (RequestTimeoutException re) {
            System.out.println(re.getTimeoutMs());
        } catch (FaultException fe) {
            System.out.println("Unknown error");
        } catch (NullPointerException ne) {
            System.out.println("Key does not exist");
        } finally {
        }
        return data;
    }
}

Тут комментировать впринципе нечего, но я все же прокомментирую:) Простите уж меня за тофтологию. Итак, сначала мы получаем на вход строчку sKey, по которой хотим получить запись, преобразуем ее в тип Key (тип NoSQL DB). Далее получаем переменную ValueVersion (собственно само значение и его версию). Затем берем только то, что нам надо в данной конктетной ситуации - значение. Результат возвращаем. Вот впринципе и все. В завершении main:

import java.io.FileNotFoundException;
import java.io.IOException;
import oracle.kv.KVStore;
import simpleoperation.*;

public class TestClass{

    static String port = "5000";
    static String host = "localhost";
    static String store = "kvstore";

    public static void main(String[] args) throws FileNotFoundException, IOException, InterruptedException {

        OraStore orastore = new OraStore(store, host, port);
        KVStore myStore = orastore.getStore();
        System.out.print(simpleoperation.RetrieveNoConnect.SelectRow("major1/major2/-/minor1/",myStore));         
        myStore.close();
}

Если у вас есть какие-либо вопросы по Oracle NoSQL - задавайте в комментах, постараюсь ответить, либо пишите на oracle.nosql@gmail.com.

Комментариев нет:

Отправить комментарий