sql >> Database >  >> RDS >> SQLite

Opslag van SQLite-database met Android en Phonegap

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

Deze regel hierboven verwijdert de tabel met de naam DEMO telkens wanneer u uw mobiele PhoneGap-toepassing start

En ik wilde je gewoon zeggen dat ik dol ben op je code. Het geeft een zeer goede aanwijzing over "wat te doen" voor ieders PhoneGap- of Cordova-toepassing. Het zal iedereen die voor het eerst de wereld van SQLite betreedt enorm helpen.

Uw code is zeer duidelijk om te lezen en te begrijpen in vergelijking met de codes die zijn geschreven op de officiële website van de Cordova/PhoneGap SQLite-plug-in op GitHub.

Mijn vriend, die ook als CTO van een bedrijf werkt en veel ervaring heeft met SQLite, vertelde me dat het niet nodig is om een ​​SQLite-databaseverbinding handmatig te sluiten, en raadde SQLite ook ten zeerste aan.

En voor iedereen die op zoek is naar SQLite voor PhoneGap/Cordova-informatie -

Stel dat u een tabel heeft met de naam mytable en u wilt de waarden "beautiful" en "dolphin" opslaan

Als u een bewerking wilt uitvoeren op de SQLite van een mobiel apparaat, zoals een tablet of telefoon, vergeet dan niet om het op deze manier te noemen

Zet het volgende in je broncode

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

en sla "mooi" op in var1 en "dolfijn" in var2 en

voer de volgende instructie uit om de SQL insert-instructie uit te voeren en sla vervolgens op in het apparaat.

db.transaction(insertNewLine);   

Niet doen direct insertNewLine(tx) aanroepen

Niet doen direct tx.executeSql aanroepen ( /* SQL INSERT STATEMENT */ ); in uw JavaScript-broncode

En niet neem de waarden rechtstreeks op in de SQL-queryinstructie en voer vervolgens de SQL-instructie uit die de waarden bevat die u in de database wilt opslaan.

Met andere woorden, het volgende is onjuist

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

Het bovenstaande is onjuist omdat de waarden die u wilt opslaan, "beautiful" en "dolphin" zijn opgenomen in de SQL-instructie. Ze moeten gescheiden zijn.

Het volgende is de juiste manier om de INSERT SQL uit te voeren

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

en voer vervolgens de volledige databasetransactie uit door het volgende in uw JavaScript-code op te nemen

db.transaction(insertNewLine);

niet de onderstaande code

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

ook niet de onderstaande code

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

En om de SELECT SQL-instructie te gebruiken, hebt u de volgende code

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

En voer vervolgens de databasetransactie uit

db.transaction(viewthelastglory);

Als je er een probeert te kiezen uit SQLite, WebSQL en IndexedDB, onthoud dan dat ik een tijdje rond stackoverflow heb gezocht en ontdekte dat

  • Niemand houdt van IndexedDB vanwege zijn complexiteit
  • IndexedDB is incompatibel met veel typen en versies van mobiele besturingssystemen
  • WebSQL is beëindigd door W3C
  • WebSQL retourneert 673K ​​resultaten, maar SQLite retourneert 1800K resultaten. IndexedDB retourneert 300.000 resultaten op Google
  • Onder IndexedDB, SQLite en WebSQL is SQLite de enige met een officiële website.

De volgende opdracht op de opdrachtregel terwijl u zich in de map van uw Cordova-project bevindt, installeert de SQLite-plug-in in uw Cordova-project

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


  1. Een nieuw databasediagram maken met MySQL Workbench

  2. BITAND() Functie in Oracle

  3. Geen unieke of uitsluitingsbeperking die overeenkomt met ON CONFLICT

  4. OASIS-SVN en git gebruiken voor toegang tot broncodecontrole