【问题标题】:Which way should I follow in SQLite in Android app我应该在 Android 应用程序的 SQLite 中遵循哪种方式
【发布时间】:2014-08-08 01:17:18
【问题描述】:

我是 Android 新手。我想设计一个也有数据库的项目。在数据库中,我有在用户使用之前已经插入的稳定/常量表,还有我将使用从用户那里获得的信息插入或更新的表。我发现了一些适用于 Android 的有用 SQLite DatabaseHandler。使用该代码,我创建了一个不变的表,并插入了一些信息。

这是我在 DatabaseHandler 中的插入函数,

ContentValues values = new ContentValues();
values.put(KEY_TEST_KART_ID, iliski.getTest_kart_id()); 
values.put(KEY_DEGERLENDIRME_KART_ID, iliski.getDegerlendirme_kart_id());
values.put(KEY_RENK, iliski.getRenk()); 
values.put(KEY_SEKIL, iliski.getSekil()); 
values.put(KEY_MIKTAR, iliski.getMiktar()); 
values.put(KEY_DIGER, iliski.getDiger()); 

db.insert(TABLE_KART_ILISKILERI, null, values);

然后我插入下面的代码,

db.addKartIliskileri(new KartIliskileri(1,1,0,0,0,1));

我对插入没有任何问题,我的问题是当项目工作时,上面的代码每次都有效!我的意思是,如果我实际上有 15 行必须添加到表中,并且如果项目工作 2 次,那么我有 30 行用于该表,但我应该有 15 行!我怎么能避免呢? (我想在 MySQL 中使用 like)

【问题讨论】:

  • 你应该有一个主键字段,这样可以防止重复记录。或者在您尝试插入数据之前,可以通过某种方式检查数据库中的数据。
  • 插入数据时,插入时没有主键区域,sqlite会自动增加主键区域。但是当我尝试使用主键手动插入时,它可以防止重复记录。谢谢

标签: android sqlite


【解决方案1】:

将应该预填充的代码放在创建数据库的同一位置,这样它只执行一次(即在创建数据库之后)。

如果你扩展了SQLiteOpenHelper,你可以把它放在db.execSQL("CREATE TABLE ...之后的onCreate()中。

【讨论】:

    【解决方案2】:

    您可以让该代码仅在数据库类的 onCreate/onUpgrade 方法期间运行。

    【讨论】:

      猜你喜欢
      • 2015-07-25
      • 1970-01-01
      • 2013-12-08
      • 1970-01-01
      • 2011-06-06
      • 2021-07-28
      • 1970-01-01
      • 2022-11-28
      • 1970-01-01
      相关资源
      最近更新 更多