Android SQLite数据库实例操作详解

0 下载量 43 浏览量 更新于2024-09-01 收藏 69KB PDF 举报
在Android开发中,SQLite数据库是一种广泛使用的轻量级数据库管理系统,由于其内嵌于Android系统,使得开发者无需额外安装即可在应用中实现数据存储和管理。本文将通过一个简单的实例,深入讲解如何在Android应用中利用SQLiteDatabase类进行数据库操作。 首先,我们介绍SQLiteDatabase类的几个关键静态方法,它们分别是: 1. `openDatabase(String path, SQLiteDatabase.CursorFactory factory, int flag)`: 这个方法用于打开已存在的数据库文件,参数`path`是数据库文件的路径,`CursorFactory`是一个创建Cursor对象的工厂,`flag`控制了数据库的行为,如是否允许异步写入(通常使用`SQLiteDatabase.OPEN_READWRITE`)。 2. `openOrCreateDatabase(File file, SQLiteDatabase.CursorFactory factory)` 和 `openOrCreateDatabase(String path, SQLiteDatabase.CursorFactory factory)`:如果指定的数据库文件不存在,则会创建一个新的数据库,之后再打开。这两个方法的区别在于一个接收File对象,另一个接收字符串路径。 3. `execSQL(String sql, Object[] bindArgs)` 和 `execSQL(String sql)`:执行SQL命令,第一个方法允许传入绑定参数,用于动态SQL,第二个方法则不支持参数绑定。这些方法用于执行插入、更新、删除或修改数据库的操作。 4. `rawQuery(String sql, String[] selectionArgs)`:执行SQL查询并返回Cursor,这个方法用于获取数据,与JDBC中的`executeQuery()`类似,但返回的是Cursor,而不是PreparedStatement。 5. `beginTransaction()` 和 `endTransaction()`:用于进行数据库事务管理,通过这两个方法可以确保一系列SQL操作要么全部成功,要么全部回滚,提供了数据一致性保障。 接下来,我们将通过一个实际的`main.xml`布局文件示例来演示如何在Android中创建数据库表并执行CRUD操作: ```xml <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"> <!-- ... --> <Button android:id="@+id/btnInsert" android:text="插入数据" android:onClick="onInsertBtnClick" /> <Button android:id="@+id/btnSelect" android:text="查询数据" android:onClick="onSelectBtnClick" /> <!-- ... --> </LinearLayout> ``` 在对应的Activity或Fragment中,你可以编写如下的Java代码来实现这些功能: ```java SQLiteDatabase db = null; try { db = SQLiteDatabase.openOrCreateDatabase("myDatabase.db", null, Context.MODE_PRIVATE); // 插入数据 ContentValues contentValues = new ContentValues(); contentValues.put("column1", "value1"); db.execSQL("INSERT INTO myTable (column1) VALUES (?)", contentValues.toArray(new String[]{})); // 查询数据 Cursor cursor = db.rawQuery("SELECT * FROM myTable", null); if (cursor.moveToFirst()) { do { String data = cursor.getString(cursor.getColumnIndex("column1")); Log.d("Data", data); } while (cursor.moveToNext()); } cursor.close(); // 事务管理 db.beginTransaction(); db.execSQL("UPDATE myTable SET column1='newValue' WHERE id=1"); db.setTransactionSuccessful(); db.endTransaction(); } finally { if (db != null && !db.isClosed()) { db.close(); } } ``` 通过这个实例,你将学习到如何在Android应用程序中使用SQLiteDatabase进行数据库操作,包括表的创建、数据插入、查询以及事务管理。这是一基础且实用的知识,对于构建Android应用中的数据持久化功能至关重要。