以下是Android通过SQLite数据库实现数据存储管理的完整攻略:
步骤1:创建数据库和表
- 在Android项目的
res
目录下创建raw
文件夹,并在该文件夹下创建一个名为database.db
的SQLite数据库文件。 - 使用SQLite数据库管理工具(如SQLiteStudio)打开
database.db
文件,并创建所需的表结构。
示例1:创建用户表
CREATE TABLE IF NOT EXISTS users (
id INTEGER PRIMARY KEY AUTOINCREMENT,
name TEXT,
email TEXT,
password TEXT
);
示例2:创建商品表
CREATE TABLE IF NOT EXISTS products (
id INTEGER PRIMARY KEY AUTOINCREMENT,
name TEXT,
price REAL,
quantity INTEGER
);
步骤2:创建SQLiteOpenHelper类
- 创建一个继承自
SQLiteOpenHelper
的类,用于管理数据库的创建和版本控制。 - 在
onCreate()
方法中执行数据库表的创建语句。 - 在
onUpgrade()
方法中执行数据库表的升级操作(如添加新的字段或表)。
示例代码:
public class DatabaseHelper extends SQLiteOpenHelper {
private static final String DATABASE_NAME = \"database.db\";
private static final int DATABASE_VERSION = 1;
public DatabaseHelper(Context context) {
super(context, DATABASE_NAME, null, DATABASE_VERSION);
}
@Override
public void onCreate(SQLiteDatabase db) {
// 创建用户表
db.execSQL(\"CREATE TABLE IF NOT EXISTS users (id INTEGER PRIMARY KEY AUTOINCREMENT, name TEXT, email TEXT, password TEXT);\");
// 创建商品表
db.execSQL(\"CREATE TABLE IF NOT EXISTS products (id INTEGER PRIMARY KEY AUTOINCREMENT, name TEXT, price REAL, quantity INTEGER);\");
}
@Override
public void onUpgrade(SQLiteDatabase db, int oldVersion, int newVersion) {
// 数据库升级操作
if (oldVersion < 2) {
// 添加新的字段或表
db.execSQL(\"ALTER TABLE users ADD COLUMN age INTEGER;\");
}
}
}
步骤3:使用SQLite数据库进行数据操作
- 在需要使用数据库的Activity或Fragment中,创建
DatabaseHelper
对象。 - 调用
getWritableDatabase()
方法获取可写的数据库对象。 - 使用数据库对象执行增删改查等操作。
示例1:插入用户数据
DatabaseHelper dbHelper = new DatabaseHelper(context);
SQLiteDatabase db = dbHelper.getWritableDatabase();
ContentValues values = new ContentValues();
values.put(\"name\", \"John\");
values.put(\"email\", \"john@example.com\");
values.put(\"password\", \"password123\");
long rowId = db.insert(\"users\", null, values);
db.close();
示例2:查询商品数据
DatabaseHelper dbHelper = new DatabaseHelper(context);
SQLiteDatabase db = dbHelper.getReadableDatabase();
String[] projection = {\"id\", \"name\", \"price\", \"quantity\"};
String selection = \"price > ?\";
String[] selectionArgs = {\"10\"};
String sortOrder = \"name ASC\";
Cursor cursor = db.query(\"products\", projection, selection, selectionArgs, null, null, sortOrder);
while (cursor.moveToNext()) {
int id = cursor.getInt(cursor.getColumnIndexOrThrow(\"id\"));
String name = cursor.getString(cursor.getColumnIndexOrThrow(\"name\"));
double price = cursor.getDouble(cursor.getColumnIndexOrThrow(\"price\"));
int quantity = cursor.getInt(cursor.getColumnIndexOrThrow(\"quantity\"));
// 处理查询结果
}
cursor.close();
db.close();
希望这个攻略对您有所帮助!如果您还有其他问题,请随时提问。
本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:Android 通过SQLite数据库实现数据存储管理 - Python技术站