Android 在phone-gap中使用数据库

Android 在phone-gap中使用数据库,android,cordova,Android,Cordova,我将进入一个新的移动项目,更具体地说是一个移动TCG交易卡游戏Deckbuilder应用程序。由于这将是我的第一款手机应用,我做了一些研究,发现了Phonegap。我已经做了几个基于节点的网络应用程序,所以它似乎很适合我 我开始搜索如何在手机上存储数据,发现有3种可能性: 内存存储SQLLite? 本地存储库 WebSqlStore LocalStorageStore,对于我的应用程序的复杂性来说似乎是不可能的。所以它介于MemoryStore和WebSqlStore之间 什么适合我的项目?你能

我将进入一个新的移动项目,更具体地说是一个移动TCG交易卡游戏Deckbuilder应用程序。由于这将是我的第一款手机应用,我做了一些研究,发现了Phonegap。我已经做了几个基于节点的网络应用程序,所以它似乎很适合我

我开始搜索如何在手机上存储数据,发现有3种可能性:

内存存储SQLLite? 本地存储库 WebSqlStore LocalStorageStore,对于我的应用程序的复杂性来说似乎是不可能的。所以它介于MemoryStore和WebSqlStore之间

什么适合我的项目?你能做到多复杂

因此,我们的想法是使用一个包含所有现有卡的大json文件:

{
  id: xx,
  name: 'name'
  manacost: xx,
  attack: xx,
  defence: xx,
  effects: [
    'lorem ipsum',
    'lorem ipsum'
  ],
  image: '/img/cards/xx.png'
}
所以为了节省一副牌,我想我可以选择:

甲板名称 一组卡片,不知我是用{id,amount}保存它们还是计数它们。 创建和更新
这不是太沉重的记忆吗?再说一次,什么样的数据库系统适合这种情况?

最好的SQLite插件是:

或此插件的特殊版本,可在此处找到:

如果你的应用程序基于JSON,你应该看看PockDB,它是一个NoSQL数据库,你可以在cordova sqlite插件上使用:


最好的SQLite插件是:

或此插件的特殊版本,可在此处找到:

如果你的应用程序基于JSON,你应该看看PockDB,它是一个NoSQL数据库,你可以在cordova sqlite插件上使用:


您可以使用SQLite保存数据。这是以表格式保存数据的非常正确的方法,这样您就可以使用sql查询获得所需的数据。当您当时使用大量数据时,有时很难使用会话或本地存储来处理此问题。所以我建议您使用SQLite。正如我在下面的示例中提到的,您将了解创建DB的想法

 <!DOCTYPE HTML>
<html>

   <head>

      <script type="text/javascript">

         var db = openDatabase('mydatabase', '1.0', 'My DB', 2 * 1024 * 1024);

         db.transaction(function (tx) {
            tx.executeSql('CREATE TABLE IF NOT EXISTS USER (id unique, name)');
            tx.executeSql('INSERT INTO USER (id, name) VALUES (1, "Ram")');
            tx.executeSql('INSERT INTO USER (id, name) VALUES (2, "Amay")');

         });

         db.transaction(function (tx) {
            tx.executeSql('SELECT * FROM USER WHERE id=?', [1], function (tx, results) {
               var len = results.rows.length, i;

               for (i = 0; i < len; i++){
                  var data = "<p><b>" + results.rows.item(i).name + "</b></p>";
                  document.querySelector('#custName').innerHTML +=  data;
               }
            }, null);
         });

      </script>

   </head>

   <body>
      <div id="custName">USER NAME</div>
   </body>

</html>

您可以使用SQLite保存数据。这是以表格式保存数据的非常正确的方法,这样您就可以使用sql查询获得所需的数据。当您当时使用大量数据时,有时很难使用会话或本地存储来处理此问题。所以我建议您使用SQLite。正如我在下面的示例中提到的,您将了解创建DB的想法

 <!DOCTYPE HTML>
<html>

   <head>

      <script type="text/javascript">

         var db = openDatabase('mydatabase', '1.0', 'My DB', 2 * 1024 * 1024);

         db.transaction(function (tx) {
            tx.executeSql('CREATE TABLE IF NOT EXISTS USER (id unique, name)');
            tx.executeSql('INSERT INTO USER (id, name) VALUES (1, "Ram")');
            tx.executeSql('INSERT INTO USER (id, name) VALUES (2, "Amay")');

         });

         db.transaction(function (tx) {
            tx.executeSql('SELECT * FROM USER WHERE id=?', [1], function (tx, results) {
               var len = results.rows.length, i;

               for (i = 0; i < len; i++){
                  var data = "<p><b>" + results.rows.item(i).name + "</b></p>";
                  document.querySelector('#custName').innerHTML +=  data;
               }
            }, null);
         });

      </script>

   </head>

   <body>
      <div id="custName">USER NAME</div>
   </body>

</html>

好的,这个想法是有一个大的JSON文件,其中包含应用程序中已经存在的所有卡片和资产。并使用sqlite或json存储来自用户的数据组。PockDB看起来是一个非常有创意的JSDB,我可能会用它作为某种本地脚本来更新我的应用程序数据。阅读你的评论,你会选择sqlite吗?是的,我更喜欢sqlite,还有一种方法可以预填充你的数据。好的想法是有一个大JSON文件,其中包含应用程序中已经存在的所有卡片和资产。并使用sqlite或json存储来自用户的数据组。PockDB看起来是一个非常有创意的JSDB,我可能会用它作为某种本地脚本来更新我的应用程序数据。所以读了你的评论,你会选择sqlite吗?是的,我更喜欢sqlite,还有一种方法可以预填充你的数据。