SQLite
 sql >> база данни >  >> RDS >> SQLite

Съхранение на база данни SQLite с помощта на Android и Phonegap

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

Този ред по-горе изтрива таблицата с име DEMO всеки път, когато стартирате мобилното си приложение PhoneGap

И просто исках да ви кажа, че харесвам кода ви. Той дава много добра представа за това "какво да правя" за нечие приложение PhoneGap или Cordova. Това ще помогне много на всеки, който влиза в света на SQLite за първи път.

Вашият код е много чист за четене и разбиране в сравнение с кодовете, написани на официалния уебсайт на приставката Cordova/PhoneGap SQLite на GitHub.

Моят приятел, който също работи като главен технически директор на компания и има богат опит със SQLite, ми каза, че не е необходимо да затварям ръчно връзка с база данни на SQLite и също силно препоръча SQLite.

И за всеки друг, който търси SQLite за информация за PhoneGap/Cordova -

Да приемем, че имате таблица с име mytable и искате да съхранявате стойности "beautiful" и "dolphin"

Когато искате да извършите операция на SQLite на мобилно устройство, като таблет или телефон, не забравяйте да го извикате по този начин

Имайте следното в изходния си код

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

и съхранявайте "beautiful" във var1 и "dolphin" във var2 и

направете следния оператор, за да изпълните SQL инструкцията за вмъкване и след това запишете в устройството.

db.transaction(insertNewLine);   

Не директно извикайте insertNewLine(tx)

Не директно извикайте tx.executeSql( /* SQL INSERT STATEMENT */ ); във вашия изходен код на JavaScript

И не включете стойностите направо в оператора SQL заявка и след това изпълнете SQL израза, който включва стойностите, които искате да съхраните в базата данни.

С други думи, следното енеправилно

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

Горното е неправилно, защото стойностите, които искате да съхраните, "beautiful" и "delphin" са включени в SQL израза. Те трябва да са отделни.

По-долу е правилният начин за стартиране на 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

и след това извършете цялата транзакция на базата данни, като включите следното във вашия JavaScript код

db.transaction(insertNewLine);

не кодът по-долу

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

не и кодът по-долу

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

И за да използвате оператора SELECT SQL, имайте следния код

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

След това извършете транзакцията на базата данни

db.transaction(viewthelastglory);

Ако се опитвате да изберете един от SQLite, WebSQL и IndexedDB, моля, не забравяйте, че търсих около stackoverflow известно време и научих, че

  • Никой не харесва IndexedDB поради неговата сложност
  • IndexedDB е несъвместим с много типове и версии на мобилна операционна система
  • WebSQL е отхвърлен от W3C
  • WebSQL връща 673K ​​резултати, но SQLite връща 1800K резултати. IndexedDB връща 300K резултати в Google
  • Сред IndexedDB, SQLite и WebSQL, SQLite е единственият с официален уебсайт.

Следната команда в командния ред, докато сте в директорията на вашия проект Cordova, ще инсталира приставката SQLite във вашия проект 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. 4 начина за изброяване на изгледите в база данни на SQLite

  2. SQLite - Създаване на база данни

  3. Вмъкване или актуализиране на Android SQLite

  4. Лимит на SQLite

  5. Отваряне на база данни на Android Sqlite във фрагмент