当在 Android Studio 中使用 SQLite 数据库时,可以遵循以下详细步骤:
android studio官网下载
implementation 'androidx.sqlite:sqlite:2.2.0'
这将添加 SQLite AndroidX 库的依赖项。
SQLiteOpenHelper
的帮助类。此类将负责数据库的创建和管理。
public class DatabaseHelper extends SQLiteOpenHelper {private static final String DATABASE_NAME = "mydatabase.db"; // 数据库文件名称private static final int DATABASE_VERSION = 1; // 数据库版本号public DatabaseHelper(Context context) {super(context, DATABASE_NAME, null, DATABASE_VERSION);}@Overridepublic void onCreate(SQLiteDatabase db) {// 创建数据库表String createTableQuery = "CREATE TABLE newsTable (_id INTEGER PRIMARY KEY AUTOINCREMENT, title TEXT, content TEXT)";db.execSQL(createTableQuery);}@Overridepublic void onUpgrade(SQLiteDatabase db, int oldVersion, int newVersion) {// 升级数据库版本if (oldVersion < newVersion) {// 执行升级操作,例如添加新的表或修改表结构}}
}
在上述代码中,我们创建了一个名为 DatabaseHelper
的类,它继承自 SQLiteOpenHelper
。在构造函数中,我们指定了数据库的名称和版本号。在 onCreate()
方法中,我们执行创建数据库表的 SQL 查询。
DatabaseHelper
对象并获取可读或可写的数据库实例:DatabaseHelper dbHelper = new DatabaseHelper(context);
SQLiteDatabase db = WritableDatabase(); // 获取可写数据库实例
// 或者
// SQLiteDatabase db = ReadableDatabase(); // 获取可读数据库实例
在上述代码中,我们创建了 DatabaseHelper
对象,并使用 getWritableDatabase()
或 getReadableDatabase()
方法获取对应的数据库实例。
使用 SQL 查询执行数据库操作。可以使用以下方法之一执行 SQL 查询:
execSQL(String sql)
: 执行不需要返回结果的 SQL 查询,例如插入、更新或删除操作。
rawQuery(String sql, String[] selectionArgs)
: 执行并返回结果的 SQL 查询,返回一个 Cursor
对象,可以用于遍历查询结果。
String insertQuery = "INSERT INTO newsTable (title, content) VALUES ('Title', 'Content')";
db.execSQL(insertQuery);
String selectQuery = "SELECT * FROM newsTable";
Cursor cursor = db.rawQuery(selectQuery, null);
if (cursor != null && veToFirst()) {do {String title = ColumnIndex("title"));String content = ColumnIndex("content"));// 处理数据} while (veToNext());
}
cursor.close();
String updateQuery = "UPDATE newsTable SET title = 'New Title' WHERE _id = 1";
db.execSQL(updateQuery);
String deleteQuery = "DELETE FROM newsTable WHERE _id = 1";
db.execSQL(deleteQuery);
db.close();
这将释放数据库资源并关闭数据库连接。 这些是使用 SQLite 数据库的详细步骤。你可以根据自己的需求进行更复杂的操作,比如使用参数化查询、使用 ContentValues
插入数据等。
以下为我完整代码
ample.homework;t.Context;
import android.database.Cursor;
import android.database.sqlite.SQLiteDatabase;
import android.database.sqlite.SQLiteOpenHelper;public class DatabaseHelper extends SQLiteOpenHelper {// 数据库名称和版本号private static final String DATABASE_NAME = "mydatabase.db";private static final int DATABASE_VERSION = 1;// 表名称private static final String TABLE_NAME = "newsTable";// 列名称private static final String COLUMN_ID = "_id";private static final String COLUMN_TITLE = "title";private static final String COLUMN_CONTENT = "content";public DatabaseHelper(Context context) {super(context, DATABASE_NAME, null, DATABASE_VERSION);}@Overridepublic void onCreate(SQLiteDatabase db) {// 创建数据库表String createTableQuery = "CREATE TABLE " + TABLE_NAME + "(" +COLUMN_ID + " INTEGER PRIMARY KEY AUTOINCREMENT, " +COLUMN_TITLE + " TEXT, " +COLUMN_CONTENT + " TEXT)";db.execSQL(createTableQuery);}@Overridepublic void onUpgrade(SQLiteDatabase db, int oldVersion, int newVersion) {// 升级数据库版本if (oldVersion < newVersion) {// 执行升级操作,例如添加新的表或修改表结构}}// 插入数据public void insertData(String title, String content) {SQLiteDatabase db = getWritableDatabase();String insertQuery = "INSERT INTO " + TABLE_NAME + " (" +COLUMN_TITLE + ", " +COLUMN_CONTENT + ") VALUES ('" +title + "', '" +content + "')";db.execSQL(insertQuery);db.close();}// 查询所有数据public Cursor getAllData() {SQLiteDatabase db = getReadableDatabase();String selectQuery = "SELECT * FROM " + TABLE_NAME;Cursor cursor = db.rawQuery(selectQuery, null);return cursor;}// 更新数据public void updateData(int id, String newTitle) {SQLiteDatabase db = getWritableDatabase();String updateQuery = "UPDATE " + TABLE_NAME + " SET " +COLUMN_TITLE + " = '" + newTitle + "' WHERE " +COLUMN_ID + " = " + SQL(updateQuery);db.close();}// 删除数据public void deleteData(int id) {SQLiteDatabase db = getWritableDatabase();String deleteQuery = "DELETE FROM " + TABLE_NAME + " WHERE " +COLUMN_ID + " = " + SQL(deleteQuery);db.close();}
}
最后一点关于数据库更新的注意事项。
数据库版本管理:在 DatabaseHelper
类中,我们设置了数据库的版本号。每当你对数据库结构进行更改时(比如添加新表或修改表结构),都应该适当地增加版本号,并在 onUpgrade()
方法中处理升级操作。这样可以确保在应用程序更新时,旧版本的数据库可以正确地升级到新版本
如若无法通过版本号更新数据库,建议更改数据库名称重新建数据库。
本文发布于:2024-01-30 04:44:18,感谢您对本站的认可!
本文链接:https://www.4u4v.net/it/170656106019306.html
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。
留言与评论(共有 0 条评论) |