SQLite
 sql >> Database >  >> RDS >> SQLite

Archiviazione del database SQLite tramite Android e Phonegap

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

Questa riga sopra elimina la tabella denominata DEMO ogni volta che avvii l'applicazione mobile PhoneGap

E volevo solo dirti che amo il tuo codice. Dà un ottimo indizio su "cosa fare" per l'applicazione PhoneGap o Cordova di chiunque. Aiuterà molto chiunque stia entrando per la prima volta nel mondo di SQLite.

Il tuo codice è molto pulito da leggere e capire rispetto ai codici scritti sul sito Web ufficiale del plug-in Cordova/PhoneGap SQLite su GitHub.

Il mio amico, che lavora anche come CTO di un'azienda e ha molta esperienza con SQLite, mi ha detto che non è necessario chiudere manualmente una connessione al database SQLite, e anche SQLite altamente raccomandato.

E per chiunque cerchi SQLite per informazioni su PhoneGap/Cordova -

Supponiamo che tu abbia una tabella denominata mytable e desideri memorizzare i valori "beautiful" e "dolphin"

Quando vuoi eseguire un'operazione sull'SQLite di un dispositivo mobile, come un tablet o un telefono, ricordati di chiamarla così

Avere quanto segue nel codice sorgente

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

e memorizza "beautiful" all'interno di var1 e "dolphin" all'interno di var2 e

eseguire l'istruzione seguente per eseguire l'istruzione di inserimento SQL e quindi salvare all'interno del dispositivo.

db.transaction(insertNewLine);   

Non chiama direttamente insertNewLine(tx)

Non chiama direttamente tx.executeSql( /* SQL INSERT STATEMENT */ ); nel tuo codice sorgente JavaScript

E non includi i valori direttamente nell'istruzione di query SQL, quindi esegui l'istruzione SQL che include i valori che desideri archiviare nel database.

In altre parole, quanto segue è errato

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

Quanto sopra non è corretto perché i valori che si desidera memorizzare, "beautiful" e "dolphin" sono inclusi nell'istruzione SQL. Dovrebbero essere separati.

Quello che segue è il modo corretto per eseguire 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

e quindi eseguire l'intera transazione del database includendo quanto segue nel codice JavaScript

db.transaction(insertNewLine);

non il codice seguente

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

neanche il codice seguente

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

E per utilizzare l'istruzione SELECT SQL, avere il codice seguente

// 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);
}

E poi, esegui la transazione del database

db.transaction(viewthelastglory);

Se stai cercando di sceglierne uno da SQLite, WebSQL e IndexedDB, ricorda che ho cercato per un po' in StackOverflow e l'ho imparato

  • A nessuno piace IndexedDB a causa della sua complessità
  • IndexedDB non è compatibile con molti tipi e versioni di sistemi operativi mobili
  • WebSQL è stato deprecato dal W3C
  • WebSQL restituisce 673.000 risultati ma SQLite restituisce 1800.000 risultati. IndexedDB restituisce 300.000 risultati su Google
  • Tra IndexedDB, SQLite e WebSQL, SQLite è l'unico con un sito web ufficiale.

Il seguente comando nella riga di comando mentre sei nella directory del tuo progetto Cordova installerà il plug-in SQLite nel tuo progetto Cordova

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