tx.executeSql('DROP TABLE IF EXISTS DEMO');
上記の行は、PhoneGapモバイルアプリケーションを起動するたびにDEMOという名前のテーブルを削除します
そして、私はあなたのコードが大好きだと言いたかっただけです。これは、誰のPhoneGapまたはCordovaアプリケーションの「何をすべきか」についての非常に良い手がかりを与えます。これは、SQLiteの世界に初めて参入するすべての人に大いに役立ちます。
GitHubのCordova/PhoneGap SQLiteプラグインの公式Webサイトに書かれているコードと比較して、コードは非常に読みやすく、理解しやすいものです。
会社のCTOを兼務しており、SQLiteの経験が豊富な友人から、SQLiteデータベース接続を手動で閉じる必要はないと言われ、SQLiteを強くお勧めしました。
そして、PhoneGap/Cordova情報用のSQLiteを探している他の人のために-
mytableという名前のテーブルがあり、「beautiful」と「dolphin」の値を格納したいとします。
タブレットや電話などのモバイルデバイスのSQLiteで操作を実行する場合は、このように呼び出すことを忘れないでください
ソースコードに次のものを含めます
function insertNewLine(tx)
{
tx.executeSql("INSERT INTO mytable (word, meaning) VALUES (?,?)", [ var1 , var2 ]);
}
var1の中に「beautiful」を、var2の中に「dolphin」を保存します
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」と「dolphin」がSQLステートメントに含まれているため、上記は正しくありません。それらは分離する必要があります。
以下は、INSERTSQLを実行する正しい方法です
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から1つを選択しようとしている場合は、しばらくの間stackoverflowを検索して、それを学んだことを覚えておいてください。
- 複雑なため、IndexedDBを好む人は誰もいません
- IndexedDBは、モバイルOSの多くのタイプおよびバージョンと互換性がありません
- WebSQLはW3Cによって非推奨になりました
- WebSQLは673Kの結果を返しますが、SQLiteは1800Kの結果を返します。 IndexedDBはGoogleで30万件の結果を返します
- IndexedDB、SQLite、WebSQLの中で、公式Webサイトを持っているのはSQLiteだけです。
Cordovaプロジェクトのディレクトリにいるときにコマンドラインで次のコマンドを実行すると、SQLiteプラグインがCordovaプロジェクトにインストールされます
cordova plugin add https://github.com/brodysoft/Cordova-SQLitePlugin