如何使用SQlite存储数据?
时间: 2024-01-24 20:02:58 浏览: 75
Android 数据库技术 SQLite 数据存储
3星 · 编辑精心推荐
SQLite 是一种轻型的关系型数据库管理系统,适用于嵌入式设备和移动设备。使用 SQLite 存储数据需要以下步骤:
1. 导入 SQLite 库:在你的项目中导入 SQLite 库,可以使用系统自带的 SQLite 库,也可以使用第三方库。
2. 创建数据库:在代码中使用 SQLiteOpenHelper 类创建数据库,并指定数据库的名称和版本号。
3. 创建表:在数据库中创建表,定义表的结构和字段。
4. 插入数据:使用 SQL 语句向表中插入数据。
5. 查询数据:使用 SQL 语句查询数据。
6. 更新数据:使用 SQL 语句更新数据。
7. 删除数据:使用 SQL 语句删除数据。
下面是一个简单的示例代码:
```java
public class DBHelper extends SQLiteOpenHelper {
// 数据库名称
public static final String DB_NAME = "my_db";
// 数据库版本号
public static final int DB_VERSION = 1;
// 表名
public static final String TABLE_NAME = "my_table";
// 字段名
public static final String COLUMN_ID = "id";
public static final String COLUMN_NAME = "name";
public static final String COLUMN_AGE = "age";
// 创建表的 SQL 语句
private static final String CREATE_TABLE_SQL = "CREATE TABLE " + TABLE_NAME + " (" +
COLUMN_ID + " INTEGER PRIMARY KEY AUTOINCREMENT, " +
COLUMN_NAME + " TEXT, " +
COLUMN_AGE + " INTEGER)";
public DBHelper(Context context) {
super(context, DB_NAME, null, DB_VERSION);
}
@Override
public void onCreate(SQLiteDatabase db) {
// 创建表
db.execSQL(CREATE_TABLE_SQL);
}
@Override
public void onUpgrade(SQLiteDatabase db, int oldVersion, int newVersion) {
// 升级数据库
db.execSQL("DROP TABLE IF EXISTS " + TABLE_NAME);
onCreate(db);
}
public void insertData(String name, int age) {
SQLiteDatabase db = getWritableDatabase();
ContentValues values = new ContentValues();
values.put(COLUMN_NAME, name);
values.put(COLUMN_AGE, age);
db.insert(TABLE_NAME, null, values);
db.close();
}
public List<Person> queryData() {
List<Person> list = new ArrayList<>();
SQLiteDatabase db = getReadableDatabase();
Cursor cursor = db.query(TABLE_NAME, null, null, null, null, null, null);
if (cursor != null) {
while (cursor.moveToNext()) {
int id = cursor.getInt(cursor.getColumnIndex(COLUMN_ID));
String name = cursor.getString(cursor.getColumnIndex(COLUMN_NAME));
int age = cursor.getInt(cursor.getColumnIndex(COLUMN_AGE));
Person person = new Person(id, name, age);
list.add(person);
}
cursor.close();
}
db.close();
return list;
}
public void updateData(int id, String name, int age) {
SQLiteDatabase db = getWritableDatabase();
ContentValues values = new ContentValues();
values.put(COLUMN_NAME, name);
values.put(COLUMN_AGE, age);
db.update(TABLE_NAME, values, COLUMN_ID + "=?", new String[]{String.valueOf(id)});
db.close();
}
public void deleteData(int id) {
SQLiteDatabase db = getWritableDatabase();
db.delete(TABLE_NAME, COLUMN_ID + "=?", new String[]{String.valueOf(id)});
db.close();
}
}
```
在这个示例代码中,我们创建了一个 DBHelper 类,继承自 SQLiteOpenHelper 类。在 onCreate() 方法中创建了一个表,包含 id、name 和 age 三个字段。在 insertData() 方法中插入数据,使用 queryData() 方法查询数据,使用 updateData() 方法更新数据,使用 deleteData() 方法删除数据。使用 SQLiteDatabase 类获取数据库对象,使用 ContentValues 类封装数据,使用 Cursor 类查询数据。
阅读全文