【问题标题】:How can I insert a string in a sql database?如何在 sql 数据库中插入字符串?
【发布时间】:2012-05-31 11:04:45
【问题描述】:

我有一个存储在字符串中的图像路径:

if(uri != null) {
              Cursor cursor = getContentResolver().query(uri, new String[] {   
                                       android.provider.MediaStore.Images.ImageColumns.DATA}, 
                                       null, null, null);
                    cursor.moveToFirst();
                    String image = cursor.getString(0);             
                    cursor.close();

我如何在这个数据库中插入/检索这个字符串?

private static final String DATABASE_CREATE =
    "create table " + DATABASE_TABLE + " ("
            + KEY_ROWID + " integer primary key autoincrement, "
            + KEY_IMAGE + " text not null)"; 

【问题讨论】:

    标签: android sql database image


    【解决方案1】:

    您应该使用ContentValues 实例和insert() 方法SQLiteDatabase

    ContentValues cv = new ContentValues();
    cv.put(<column>, <data>);   
    cv.put(<column>, <data>);
    cv.put(<column>, <data>);       
    db.insert(<tableName>, <columnHackNull>, cv);
    

    这种方式一般推荐,干净。

    编辑:

    用于从数据库中检索数据,基本示例:

    String SELECT_QUERY = "SELECT * FROM Table";
    Cursor c = db.rawQuery(SELECT_QUERY , null);
    

    或使用 whereArgs

    String SELECT_QUERY = "SELECT * FROM Table WHERE id = ?";
    String[] whereArgs = {"<data>","<data>"};
    Cursor c = db.rawQuery(SELECT_QUERY , whereArgs );
    

    【讨论】:

    • @Sajmon 为什么不c = db.query(DATABASE_TABLE, new String[] {KEY_ROWID, KEY_IMAGE}, null /*String selection*/, null /*String[] selectionArgs*/, null/*String groupBy*/, null/*String having*/, null/*String orderBy*/);
    • @Selvin 这种方式也是正确的 :-) 我写了基本的例子,是的,方法查询更复杂
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-10-20
    • 2018-02-05
    • 1970-01-01
    • 2013-03-05
    • 1970-01-01
    相关资源
    最近更新 更多