SQLite
 sql >> Baza danych >  >> RDS >> SQLite

Przechowywanie bazy danych SQLite za pomocą Androida i Phonegap

tx.executeSql('DROP TABLE IF EXISTS DEMO');

Ten wiersz powyżej usuwa tabelę o nazwie DEMO za każdym razem, gdy uruchamiasz aplikację mobilną PhoneGap

Chciałem tylko powiedzieć, że uwielbiam twój kod. Daje bardzo dobrą wskazówkę, „co zrobić” dla dowolnej aplikacji PhoneGap lub Cordova. To bardzo pomoże każdemu, kto pierwszy raz wchodzi do świata SQLite.

Twój kod jest bardzo przejrzysty do odczytania i zrozumienia w porównaniu z kodami napisanymi na oficjalnej stronie wtyczki Cordova/PhoneGap SQLite na GitHub.

Mój przyjaciel, który pracuje również jako CTO w firmie i ma duże doświadczenie z SQLite, powiedział mi, że nie jest konieczne ręczne zamykanie połączenia z bazą danych SQLite i bardzo polecał SQLite.

I dla każdego, kto szuka SQLite do informacji PhoneGap/Cordova -

Załóżmy, że masz tabelę o nazwie mytable i chcesz przechowywać wartości „piękne” i „delfiny”

Jeśli chcesz wykonać operację na SQLite urządzenia mobilnego, takiego jak tablet lub telefon, pamiętaj, aby nazwać to w ten sposób

Umieść następujące informacje w swoim kodzie źródłowym

function insertNewLine(tx) 
{
   tx.executeSql("INSERT INTO mytable (word, meaning) VALUES (?,?)", [ var1 , var2 ]);
}

i zapisz „beautiful” w var1 i „delphin” w var2 i

wykonaj poniższą instrukcję, aby wykonać instrukcję SQL INSERT, a następnie zapisz ją w urządzeniu.

db.transaction(insertNewLine);   

Nie bezpośrednio wywołaj insertNewLine(tx)

Nie bezpośrednio wywołaj tx.executeSql( /* SQL INSERT STATEMENT */ ); w kodzie źródłowym JavaScript

I nie uwzględnij wartości bezpośrednio w zapytaniu SQL, a następnie uruchom instrukcję SQL zawierającą wartości, które chcesz przechowywać w bazie danych.

Innymi słowy, poniższe jest niepoprawne

tx.executeSql('INSERT INTO mytable (word, meaning) values (beautiful, dolphin)');

Powyższe jest niepoprawne, ponieważ wartości, które chcesz przechowywać, „piękne” i „dolphin”, są zawarte w instrukcji SQL. Powinny być oddzielne.

Poniżej przedstawiono prawidłowy sposób uruchamiania INSERT SQL

tx.executeSql("INSERT INTO mytable (word, meaning) VALUES (?,?)", [ var1 , var2 ]);
 // Notice that the values you want to store, beautiful and dolphin
 // are separate from the SQL INSERT INTO statement

a następnie wykonaj całą transakcję bazy danych, umieszczając następujące elementy w kodzie JavaScript

db.transaction(insertNewLine);

nie poniższy kod

tx.executeSql("INSERT....."); // this will not save your values onto the device

nie do poniższego kodu

insertNewLine(tx); // this will not save your values onto the device either.  

Aby użyć instrukcji SELECT SQL, przygotuj następujący kod

// Get all lines in the table
//
function viewthelastglory(tx)  
{
    tx.executeSql( 'SELECT * FROM CUSTOMTABLE', [], querySuccess, errorcode );
}

// Deal with the lines 
//
function querySuccess(tx, results) 
{
   var len = results.rows.length; var  queryresult = "all entries ";

   for (var i = 0 ; i < len ; i++)
   {
       queryresult =  queryresult +  

       " Row - " + i + 
       " Word - " + results.rows.item(i).word + 
       " Meaning - " + results.rows.item(i).meaning;
   }

// and now, you can use the queryresult variable to use the values   
}

function errorcode(errorhaha) 
{
    alert("Error Code " + errorhaha.code + " Error Message " + errorhaha.message);
}

A następnie wykonaj transakcję bazy danych

db.transaction(viewthelastglory);

Jeśli próbujesz wybrać jeden z SQLite, WebSQL i IndexedDB, pamiętaj, że przez chwilę szukałem w stosie przepełnienia i dowiedziałem się, że

  • Nikt nie lubi IndexedDB ze względu na jego złożoność
  • IndexedDB jest niekompatybilny z wieloma typami i wersjami mobilnego systemu operacyjnego
  • WebSQL został wycofany przez W3C
  • WebSQL zwraca 673 tys. wyników, ale SQLite zwraca 1800 tys. IndexedDB zwraca 300 000 wyników w Google
  • Spośród IndexedDB, SQLite i WebSQL, SQLite jako jedyny posiada oficjalną stronę internetową.

Następujące polecenie w wierszu poleceń, gdy jesteś w katalogu swojego projektu Cordova, zainstaluje wtyczkę SQLite w twoim projekcie Cordova

cordova plugin add https://github.com/brodysoft/Cordova-SQLitePlugin


  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Dlaczego potrzebujemy klauzuli GLOB w SQLite?

  2. Jak mogę zaktualizować pole mojego pokrętła za pomocą danych wprowadzonych przez użytkownika w EditText?

  3. SQLite onUpgrade() frustracja

  4. Data i godzina SQLite

  5. SQLite POKAŻ TABELI odpowiednik