步骤1:创建数据库帮助类
创建一个数据库帮助类,用于管理数据库的创建和版本升级。在这个类中,你可以定义表的结构以及升级数据库的逻辑。
import android.content.Context;
import android.database.sqlite.SQLiteDatabase;
import android.database.sqlite.SQLiteOpenHelper;
public class MyDatabaseHelper extends SQLiteOpenHelper {
private static final String DATABASE_NAME = "dry_sister.db";
private static final int DATABASE_VERSION = 1;
public static final String TABLE_NAME = "sister";
public static final String COLUMN_ID = "_id";
public static final String COLUMN_NAME = "name";
public static final String COLUMN_IMAGE_URL = "image_url";
private static final String CREATE_TABLE =
"CREATE TABLE " + TABLE_NAME + " (" +
COLUMN_ID + " INTEGER PRIMARY KEY AUTOINCREMENT, " +
COLUMN_NAME + " TEXT, " +
COLUMN_IMAGE_URL + " TEXT)";
public MyDatabaseHelper(Context context) {
super(context, DATABASE_NAME, null, DATABASE_VERSION);
}
@Override
public void onCreate(SQLiteDatabase db) {
db.execSQL(CREATE_TABLE);
}
@Override
public void onUpgrade(SQLiteDatabase db, int oldVersion, int newVersion) {
// 数据库升级逻辑
// 可以根据版本号进行不同的处理
}
}
步骤2:使用SQLite数据库
在你的应用中使用创建的数据库帮助类,执行插入、查询等数据库操作。
import android.content.ContentValues;
import android.content.Context;
import android.database.Cursor;
import android.database.SQLException;
import android.database.sqlite.SQLiteDatabase;
public class SisterDataSource {
private SQLiteDatabase database;
private MyDatabaseHelper dbHelper;
public SisterDataSource(Context context) {
dbHelper = new MyDatabaseHelper(context);
}
public void open() throws SQLException {
database = dbHelper.getWritableDatabase();
}
public void close() {
dbHelper.close();
}
public long insertSister(String name, String imageUrl) {
ContentValues values = new ContentValues();
values.put(MyDatabaseHelper.COLUMN_NAME, name);
values.put(MyDatabaseHelper.COLUMN_IMAGE_URL, imageUrl);
return database.insert(MyDatabaseHelper.TABLE_NAME, null, values);
}
public Cursor getAllSisters() {
String[] allColumns = {
MyDatabaseHelper.COLUMN_ID,
MyDatabaseHelper.COLUMN_NAME,
MyDatabaseHelper.COLUMN_IMAGE_URL
};
return database.query(MyDatabaseHelper.TABLE_NAME, allColumns, null, null, null, null, null);
}
}
步骤3:在应用中使用数据缓存
在你的应用中,当从网络获取到数据时,先将数据插入到SQLite数据库中,然后在需要的时候从数据库中查询数据。
// 假设从网络获取到数据后
String sisterName = "Lucy";
String sisterImageUrl = "http://example.com/lucy.jpg";
// 将数据插入到数据库
SisterDataSource dataSource = new SisterDataSource(context);
dataSource.open();
long insertedId = dataSource.insertSister(sisterName, sisterImageUrl);
dataSource.close();
// 从数据库中查询数据
dataSource.open();
Cursor cursor = dataSource.getAllSisters();
// 处理查询结果
if (cursor != null && cursor.moveToFirst()) {
do {
String name = cursor.getString(cursor.getColumnIndex(MyDatabaseHelper.COLUMN_NAME));
String imageUrl = cursor.getString(cursor.getColumnIndex(MyDatabaseHelper.COLUMN_IMAGE_URL));
// 处理数据
} while (cursor.moveToNext());
}
dataSource.close();
在实际项目中,你可能需要考虑更多的事项,如异步数据库操作、错误处理、数据库版本升级等。SQLite是Android开发中的一个基本工具,掌握它的使用将对你的应用开发有很大帮助。如果项目较为复杂,你可能还需要考虑使用ORM(对象关系映射)库,如Room。
转载请注明出处:http://www.zyzy.cn/article/detail/15258/Android