2012-02-02 2 views
1

Я пытаюсь перевести некоторые из кода Objective C в Java ...базы данных транзакций в Java на Android

[_db beginTransaction]; 

    Date now = [[NSDate alloc] init]; 
    boolean result = [_db executeUpdate:updateQuery, [self stringToDB:account.userId], 
        [self integerToDB:account.accountId], 
        [self integerToDB:account.accountType], 
        [self stringToDB:account.accountName], 
       ]; 

    [_db commit]; 
    return true; 

Может кто-нибудь сказать мне, как я могу реализовать BeginTransaction and Commit в Java?

ответ

1

Поскольку вы отметили это «Android», Android SDK имеет класс SQLiteDatabase, который обычно завершается вспомогательным классом (если вы следуете инструкциям/tuts/etc.).

SQLiteDatabase имеет beginTransaction() и endTransaction(), которые позволяют запускать ... erm, транзакции базы данных. endTransaction() - это нечто вроде фиксации, но с оговорками. Обратитесь к documentation за дополнительной информацией.

+0

Это то, что я ищу :) Чтение документации –

0

Я решил это в своих рамках, создав многоразовые TxHandle поддерживающие db-стиле функции начала, фиксации и отката. Иногда я хочу выполнять массовую обработку данных с безопасностью транзакций, поэтому я создаю дескриптор транзакции и передаю его в DAO, чтобы обрабатывать множество строк, и поэтому он скрывает это - мне немного запутанно - API.

Но, честно говоря, случай использования по умолчанию заключается в том, что по умолчанию выполняется одна строка; исключения нескольких строк в юниверсе ORM являются исключением, поэтому вы можете взглянуть на Dao-Implementation Tutorial, чтобы избежать возиться со строками.

Не стесняйтесь, напишите фрагмент кода.