SQLiteOpenHelper
类,然后重写其onCreate
方法来创建表和定义结构。Android 创建 SQLite 数据库
SQLite 是一个轻量级的关系型数据库管理系统,广泛用于移动应用开发中,Android 提供了对 SQLite 的支持,通过SQLiteOpenHelper
类可以方便地管理数据库的创建和版本控制,本文将详细介绍如何在 Android 项目中创建和使用 SQLite 数据库。
1. 准备工作
确保您已经在您的 Android Studio 项目中配置了必要的环境和依赖项,如果您还没有创建 Android 项目,请先创建一个新项目。
1 添加依赖项
在项目的build.gradle
文件中,确保包含以下内容:
dependencies { implementation 'androidx.appcompat:appcompat:1.2.0' implementation 'androidx.core:core-ktx:1.3.2' implementation 'androidx.constraintlayout:constraintlayout:2.0.4' }
2 配置权限
在AndroidManifest.xml
中添加读写存储权限:
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE"/> <uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE"/>
2. 创建 SQLiteOpenHelper 子类
SQLiteOpenHelper
是一个帮助类,用于管理数据库的创建和版本管理,我们需要继承这个类并实现其方法。
1 定义数据库结构
定义一个类来表示我们的数据库表,我们创建一个用户表User
:
public class User { public static final String TABLE_NAME = "user"; public static final String COLUMN_ID = "id"; public static final String COLUMN_NAME = "name"; public static final String COLUMN_EMAIL = "email"; @Override public String toString() { return "User{" + "id=" + id + ", name='" + name + ''' + ", email='" + email + ''' + '}'; } }
2.2 创建 SQLiteOpenHelper 子类
创建一个继承自SQLiteOpenHelper
的类,并在其中实现数据库的创建和升级逻辑:
public class MyDatabaseHelper extends SQLiteOpenHelper { private static final String DATABASE_NAME = "mydatabase.db"; private static final int DATABASE_VERSION = 1; public MyDatabaseHelper(Context context) { super(context, DATABASE_NAME, null, DATABASE_VERSION); } @Override public void onCreate(SQLiteDatabase db) { String createTable = "CREATE TABLE " + User.TABLE_NAME + " (" + User.COLUMN_ID + " INTEGER PRIMARY KEY AUTOINCREMENT, " + User.COLUMN_NAME + " TEXT, " + User.COLUMN_EMAIL + " TEXT" + ")"; db.execSQL(createTable); } @Override public void onUpgrade(SQLiteDatabase db, int oldVersion, newVersion) { // 在这里处理数据库升级逻辑,例如删除旧表并创建新表 db.execSQL("DROP TABLE IF EXISTS " + User.TABLE_NAME); onCreate(db); } }
3. 操作数据库
为了操作数据库,我们需要实例化MyDatabaseHelper
并使用它来获取可写的数据库对象,然后我们可以执行 SQL 查询或使用 ContentValues 进行插入、更新和删除操作。
1 插入数据
MyDatabaseHelper dbHelper = new MyDatabaseHelper(this); SQLiteDatabase db = dbHelper.getWritableDatabase(); ContentValues values = new ContentValues(); values.put(User.COLUMN_NAME, "John Doe"); values.put(User.COLUMN_EMAIL, "john.doe@example.com"); long newRowId = db.insert(User.TABLE_NAME, null, values);
2 查询数据
Cursor cursor = db.query( User.TABLE_NAME, // The table to query null, // Return all rows null, // Don't use a where clause null, // No selection arguments null, // The columns to return (all columns) null, // The sort order (none) null // Limit the number of results (none) ); while (cursor.moveToNext()) { long id = cursor.getLong(cursor.getColumnIndexOrThrow(User.COLUMN_ID)); String name = cursor.getString(cursor.getColumnIndexOrThrow(User.COLUMN_NAME)); String email = cursor.getString(cursor.getColumnIndexOrThrow(User.COLUMN_EMAIL)); Log.d("User", "ID: " + id + ", Name: " + name + ", Email: " + email); } cursor.close();
3 更新数据
ContentValues values = new ContentValues(); values.put(User.COLUMN_EMAIL, "new.email@example.com"); int rowsUpdated = db.update(User.TABLE_NAME, values, User.COLUMN_ID + " = ?", new String[]{String.valueOf(userId)});
4 删除数据
int rowsDeleted = db.delete(User.TABLE_NAME, User.COLUMN_ID + " = ?", new String[]{String.valueOf(userId)});
4. 完整示例代码
以下是一个完整的示例,展示了如何在 Android 应用中创建和使用 SQLite 数据库:
public class MainActivity extends AppCompatActivity { @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); MyDatabaseHelper dbHelper = new MyDatabaseHelper(this); SQLiteDatabase db = dbHelper.getWritableDatabase(); // 插入数据 ContentValues values = new ContentValues(); values.put(User.COLUMN_NAME, "John Doe"); values.put(User.COLUMN_EMAIL, "john.doe@example.com"); db.insert(User.TABLE_NAME, values); // 查询数据 Cursor cursor = db.query(User.TABLE_NAME, null, null, null, null, null, null); while (cursor.moveToNext()) { long id = cursor.getLong(cursor.getColumnIndexOrThrow(User.COLUMN_ID)); String name = cursor.getString(cursor.getColumnIndexOrThrow(User.COLUMN_NAME)); String email = cursor.getString(cursor.getColumnIndexOrThrow(User.COLUMN_EMAIL)); Log.d("User", "ID: " + id + ", Name: " + name + ", Email: " + email); } cursor.close(); } }
5. 归纳
本文介绍了如何在 Android 应用中使用 SQLite 数据库,包括创建数据库、定义表结构、插入数据、查询数据、更新数据和删除数据的基本操作,通过继承SQLiteOpenHelper
类,我们可以方便地管理数据库的版本控制和升级逻辑,希望本文对您有所帮助,祝您在 Android 开发中取得成功!
原创文章,作者:未希,如若转载,请注明出处:https://www.kdun.com/ask/1266515.html
本网站发布或转载的文章及图片均来自网络,其原创性以及文中表达的观点和判断不代表本网站。如有问题,请联系客服处理。
发表回复