您的位置:首页 > 数据库

数据保存(三):数据库

2015-11-04 00:24 483 查看
一、继承SQLiteOpenHelper类

public class MySQLiteOpenHelper extends SQLiteOpenHelper {
public static final int DATABASE_VERSION = 1;
public static final String DATABASE_NAME = "数据库的名称.db";

public MySQLiteOpenHelper(Context context) {
super(context, DATABASE_NAME, null, DATABASE_VERSION);
}

public void onCreate(SQLiteDatabase db) {
db.execSQL(创建数据库的SQL语句);
}

public void onUpgrade(SQLiteDatabase db, int oldVersion, int newVersion) {
// 升级数据库
}
}


二、获取SQLiteDatabase类

MySQLiteOpenHelper mySQLiteOpenHelper = new MySQLiteOpenHelper(getContext());
SQLiteDatabase db = mySQLiteOpenHelper.getWritableDatabase();


三、增

ContentValues contentValues = new ContentValues();
contentValues.put(自定义的列名常量, 数据);
long newRowId = db.insert(自定义的表名常量, null, contentValues);


四、删

db.delete(自定义的表名常量, WHERE语句,
WHERE语句的参数集合 /* 依次替代语句中的每个“?” */);


五、改

db.update(自定义的表名常量, contentValues, WHERE语句,
WHERE语句的参数集合);


六、查

// 还有其他查询形式,这里列举其一
// 若想省略某些语句,可用null
Cursor cursor = db.query(
自定义的表名常量,
欲查询的列名集合,
WHERE语句,
WHERE语句的参数集合,
GROUP BY语句,
HAVING语句,
ORDER BY语句,
LIMIT语句);

// 如果查不到
if(null == cursor)
{
return;
}

// 从游标中循环获取查询结果
while(cursor.moveToNext())
{
// 先获取某个列在游标中对应的id
int columnIndex = cursor.getColumnIndexOrThrow(自定义的列名常量);
// 再根据id获取其数据。
// 某数据类型可以是int、String等
某数据类型 data = cursor.get某数据类型(columnIndex);
}

// 查完之后关闭游标,以免内存泄漏
cursor.close();


七、原子操作

原子操作可以确保若干条操作语句一起成功或者一起失败。

// 1.开始原子操作
db.beginTransaction();
try {
// 2.若干操作语句
...

// 3.若执行到此处,设置原子操作成功
db.setTransactionSuccessful();
} finally {
// 4.结束原子操作
db.endTransaction();
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: