您的位置:首页 > 数据库

初学_Android4高级编程-9 SQLite数据库

2015-07-08 18:50 441 查看
※SQlite是一个开源轻量级的关系数据库,是Android软件栈的一部分。

·在Android中数据库查询作为Cursor对象返回

Cursor导航函数:

moveToFirst 把游标移动到查询结果的第一行

moveToNext 把游标移动到下一行

moveToPrevious 把游标移动到前一行

getCount 得到结果集中的行数

getColunmIndexOrThrow 返回具有指定名称的列的索引,如果不存在抛出异常

getColunName 返回指定列索引的名称

getColunNames 返回当前Cursor中所有列名的字符串数组

moveToPosition 把游标移动到指定行

getPosition 返回当前游标的位置

·SQLiteOpenhelper是一个抽象类,用来创建、打开和升级数据库的最佳实践模式,通过实现SQLiteOpenhelper,可以隐藏那些勇于决定一个数据库在打开之前是否需要创建或者升级的逻辑

public class SqlHelper extends SQLiteOpenHelper {

private static final String SQL_CREATE_USER = "CREATE TABLE user(_id INTEGER PRIMARY KEY, name TEXT NOT NULL)";

public SqlHelper(Context context) {
super(context, "test.db", null, 1);
}

//当磁盘上不存在数据库,辅助类需要创建一个新数据库时调用
@Override
public void onCreate(SQLiteDatabase db) {
db.execSQL(SQL_CREATE_USER);
}

//当数据库版本不一致,磁盘上的数据库版本需要升级到当前版本时调用
@Override
public void onUpgrade(SQLiteDatabase db, int oldVersion, int newVersion) {
db.execSQL("DROP TABLE IF EXISTS user");
onCreate(db);
}

}

插入一条数据

SQLiteDatabase db = sqlHelper.getWritableDatabase();

String name = et.getText().toString().trim();

ContentValues values = new ContentValues();

values.put("name", name);

db.insert("user", null, values);

db.close();

更新一条数据

SQLiteDatabase db = sqlHelper.getWritableDatabase();

ContentValues updateValues = new ContentValues();

updateValues.put(KEY_GOLD_HOARD_COLUMN,newHoaedValue);

//指定一个where子句来定义那些行应被更新

String where = KEY_ID = "=" + hoardID;

String whereArgs[] = null;

db.update("user",updateValues,where,whereArgs);

删除数据

SQLiteDatabase db = sqlHelper.getWritableDatabase();

db.delete("user", "name=?", new String[]{"张三"});

db.delete("user", null, null);

db.close();

查询数据,Cursor会被初始化到第一个元素的前一个位,while(Cursor.moveToNext())

SQLiteDatabase db = sqlHelper.getReadableDatabase();

//Cursor cursor = db.query("user", null, "name=?", new String[]{"张三"}, null, null, null);

Cursor cursor = db.query("user", null, null, null, null, null, null);

if (cursor.getCount()!=0) {

cursor.moveToFirst();

do {

String str = "id = " + cursor.getString(0).trim() + " ,name = " + cursor.getString(1).trim();

Toast.makeText(this, str, Toast.LENGTH_SHORT).show();

} while (cursor.moveToNext());

} else {

Toast.makeText(this, "数据库为空", Toast.LENGTH_SHORT).show();

}

cursor.close();

db.close();
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: