【问题标题】:Can I use Shared Preference rather SQLite Database?我可以使用共享首选项而不是 SQLite 数据库吗?
【发布时间】:2016-07-18 09:03:29
【问题描述】:

我想保留具有共享偏好的数据。我在互联网上查看了一些示例,但无法回答我的问题。我可以将数据库用于我的目的,但这真的很难,尤其是在 android 中。有些例子有超过 10 个类来创建数据库。为什么这么难?。这是android中db的缺点。

无论如何,我将在我的应用程序中只保留 1 个包含 4(关系)列的表。

标识 |姓名 |姓氏|电话号码。

我可以使用共享偏好来实现这个目标吗? 4个不同的列如何使用?

【问题讨论】:

  • 不,你不能在给定的场景中使用 SharedPrefs。在 android 中使用 DB 并不难,有很多很好的教程可以帮助你创建简单的表。
  • 您想提供一种反模式(对问题的糟糕解决方案)。您遵循关于数据库的糟糕教程这一事实并不意味着它们使用起来很复杂。事实上,您可以只为您的数据库助手使用 1 个类。然后,可选地,您可以为要使用的每个对象模型提供一个类。

标签: android database sqlite sharedpreferences


【解决方案1】:

您应该为此使用数据库, 但是,如果您在每一列中只有一个条目,那么您可以使用共享首选项

数据库并不难,请查看以下页面 http://www.tutorialspoint.com/android/android_sqlite_database.htm

【讨论】:

    【解决方案2】:

    DataBase 满足你的需求,如果你想轻松使用DataBase,试试xUtils,-----一些关于xUtils的代码:

    //add
    User user1 = new User();
    user1.setAge(40);
    user1.setName("bob");
    user1.setPhone("123456789");
    
    ArrayList<User> list = new ArrayList<>();
    list.add(user1);
    
     try {
     MyApplication.dbUtils.saveAll(list);         
     } catch (DbException e) {
       e.printStackTrace();
       Log.d("TAG",e.getMessage());
     }
    
     //updata---1
    try {
       User  users = MyApplication.dbUtils.findById(User.class,1);
       users.setAge(18);
       MyApplication.dbUtils.update(users,"age");
        } catch (DbException e) {
            e.printStackTrace();
        }
    
    
     //delete
     User user = new User();
     user.setId(3);
     try {
         MyApplication.dbUtils.delete(user);
     } catch (DbException e) {
         e.printStackTrace();
    }
    
    //query
    List<User> allUsers = MyApplication.dbUtils.findAll(Selector.from(User.class)
    .where("age",">","20")
    .and("age","<","50"));
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2011-08-21
      • 1970-01-01
      • 2011-06-26
      • 1970-01-01
      • 1970-01-01
      • 2011-09-16
      • 1970-01-01
      • 2020-08-18
      相关资源
      最近更新 更多