2017-02-22 33 views
0

我正在开发一个Android应用程序,其中存储了引号。 请告诉我,未来如何在数据库中添加新报价?如何更新我的应用程序的内容?

我希望那会是什么方便,例如一个单独的活动,我写的报价,作者,主题,并通过点击,将有这句话被添加到数据库中。但是这样的用户不能做什么。

我打算使用火力地堡实时数据库,但如何组织的管理员的端更新,我不知道。 也许我需要编写一个单独的应用程序来处理数据库? 在此先感谢。

+0

您可以为管理员登录的用户创建一个spei quote-adding-activity,您可以使用Firebase安全规则强制执行此操作。 – Linxy

回答

0

要存储报价,您需要实现Screen,其中用户可以添加新报价。为了存储该对象,您需要创建SQLite数据库(用于持久性存储)。

但是你的用例是,你要还管理该数据库。所以,对于那个SQLite没有帮助。对于那个用例,你需要在远程服务器上存储数据。从那里只有你可以管理该数据库。

火力地堡是一个非常不错的选择,有你得到一些额外的功能也。

+0

如何与数据库进行交互?从我的应用程序?那么如何让人们看不到额外的功能呢?编写一个单独的应用程序来处理数据库? –

+0

- 以下是Firebase [Firebase指南](https://firebase.google.com/docs/database/)的完整指南。 - 为了根据用户制作功能,您可以保存用户类型,并根据该用户类型显示或隐藏功能。 –

0

行情,我希望你要在数据库中存储数据,并且您还需要稍后更新这些引号。

首先,你需要为SqliteHelper这样的事情

public class DBHelper extends SQLiteOpenHelper { 
    public static final String DB_NAME = "app_db"; 
    private static final int DB_VERSION = 1; 

    public DBHelper(@ApplicationContext Application application) { 
     super(application, DB_NAME, null, DB_VERSION); 
    } 

    @Override 
    public void onCreate(SQLiteDatabase db) { 
     if (db.isOpen()) { 
      //Create Quotes Table 
      QuotesDao.onCreateTable(db); 
     } 
    } 

    @Override 
    public void onUpgrade(SQLiteDatabase db, int oldVersion, int newVersion) { 
     if (db.isOpen()) { 
      //Upgrade Contacts Table 
      QuotesDao.onUpgradeTable(db, oldVersion, newVersion); 
     } 
    } 

提供实施当你与创建DB做,现在你有一个表行情基本上在QuotesDao管理。

QuotesDao是行情表,它提供插入,更新一个辅助类,提取或删除操作。 事情是这样的: -

public class QuotesDao { 
public static final String TAG = QuotesDao.class.getSimpleName(); 
public static String QUOTES = "contact_photo_url"; 

private static final String TABLE_NAME = "quotes"; 
private static final String[] ALL_COLUMNS = new String[]{ 
     QUOTES, 
}; 


public static void onCreateTable(SQLiteDatabase db) { 
    String sql = "CREATE TABLE IF NOT EXISTS " 
      + TABLE_NAME + "(" 
      + QUOTES + " TEXT" 
      + ")"; 
    db.execSQL(sql); 
} 


public static void onUpgradeTable(SQLiteDatabase db, int oldVersion, int newVersion) { 

} 


public synchronized List<Quotes> fetchQuotes(DBHelper dbHelper) { 
    SQLiteDatabase db = dbHelper.getReadableDatabase(); 
    Cursor cursor = db.query(TABLE_NAME, ALL_COLUMNS, null, null, null, null, null); 
    //Close the DB when its work is done 
    List<Quotes> quotes = null;// Parse Cursor object into Quotes list; 
    return quotes; 
} 


public synchronized long insert(DBHelper dbHelper, Quotes quotes) { 
    SQLiteDatabase db = dbHelper.getWritableDatabase(); 
    ContentValues cv = null;// Map your Object in content values ; 
    long insert = db.insertWithOnConflict(TABLE_NAME, null 
      , cv 
      , SQLiteDatabase.CONFLICT_REPLACE); 
    return insert; 
} 


public synchronized long updateQuotes(ContactInfo contactInfo, DBHelper dbHelper) { 
    //Write Update logic here 
    return id; 
} 


/** 
* Method to delete a contact from table 
* @param contactInfo Contact which need to be deleted 
* @param dbHelper DBHelper 
*/ 
public synchronized void delete(ContactInfo contactInfo, DBHelper dbHelper) { 
    SQLiteDatabase db = dbHelper.getWritableDatabase(); 
    db.delete(TABLE_NAME, null, null); 
} 

/** 
* Method to clear all the data from store contact table 
* @param dbHelper DBHelper 
*/ 
public void clear(DBHelper dbHelper) { 
    SQLiteDatabase db = dbHelper.getWritableDatabase(); 
    db.delete(TABLE_NAME, null, null); 
} 

public void onDeleteTable(SQLiteDatabase db) { 
    db.execSQL("DROP TABLE IF EXISTS '" + TABLE_NAME + "'"); 
} 

}

而且在未来,如果你需要添加更多的报价,你会插入使用插入方法Qutes表中的报价。

如果您需要更新表的模式,那么首先您需要升级数据库版本,然后您将调用DBHelper的onUpgradeTable()方法,您可以在其中编写升级表业务逻辑以获取有关如何升级表的更多详细信息请参阅here

相关问题