面试题答案
一键面试-
获取SQLiteDatabase实例: 首先需要获取一个
SQLiteDatabase
实例,通常在自定义的SQLiteOpenHelper
子类中进行操作。假设已经有一个MyDatabaseHelper
继承自SQLiteOpenHelper
:MyDatabaseHelper dbHelper = new MyDatabaseHelper(context, "my_database.db", null, 1); SQLiteDatabase db = dbHelper.getWritableDatabase();
MyDatabaseHelper(context, "my_database.db", null, 1)
:context
是上下文对象,用于访问应用程序的资源和环境;"my_database.db"
是数据库名称;null
表示使用默认的游标工厂;1
是数据库版本号。dbHelper.getWritableDatabase()
:获取一个可写的数据库实例,如果数据库不存在,会先创建数据库。
-
插入数据: 使用
ContentValues
来存储要插入的数据,然后调用SQLiteDatabase
的insert
方法。假设存在一个名为users
的表,包含name
和age
两列:ContentValues values = new ContentValues(); values.put("name", "John"); values.put("age", 30); long newRowId = db.insert("users", null, values);
ContentValues values = new ContentValues()
:创建一个ContentValues
对象,它类似于一个键值对的映射,用于存储要插入的数据。values.put("name", "John")
:将name
列的值设置为John
,第一个参数是列名,第二个参数是对应的值。values.put("age", 30)
:将age
列的值设置为30
。db.insert("users", null, values)
:- 第一个参数
"users"
是要插入数据的表名。 - 第二个参数
null
是一个可选的nullColumnHack
,如果values
为空,nullColumnHack
指定的列会被插入NULL
值,一般设置为null
。 - 第三个参数
values
是包含要插入数据的ContentValues
对象。 - 返回值
newRowId
是插入数据后新行的行ID,如果插入失败,返回-1
。
- 第一个参数
-
关闭数据库: 在操作完成后,需要关闭数据库以释放资源:
db.close();
db.close()
关闭数据库连接,确保数据库资源被正确释放。