安卓数据库操作源码:增删改查 (安卓数据库的增删改查源码)

在Android开发中,数据库是必不可少的一部分。很多应用程序需要存储和管理数据,这就需要涉及到数据库的操作。安卓提供了SQLite数据库,是轻量级的数据库引擎,非常适合移动应用程序的嵌入式数据库。

本文将讲解安卓数据库操作的源码:增删改查。增删改查是数据库操作的基本操作,是使用SQLite数据库时必须掌握的操作。

一、创建数据库

在使用SQLite数据库前,需要创建数据库。一般情况下,创建一个新的数据库的方法是通过创建一个SQLiteOpenHelper类实例,然后调用它的getWritableDatabase()或getReadableDatabase()方法来获取SQLiteDataBase对象。

以下是一个示例代码:

“`java

public class MySQLiteOpenHelper extends SQLiteOpenHelper {

public static final String DATABASE_NAME = “test.db”; //数据库名称

public static final int DATABASE_VERSION = 1; //数据库版本

//数据库创建语句

private static final String CREATE_TABLE = “create table if not exists “

+ “person (id integer primary key autoincrement, name varchar(20), age integer)”;

public MySQLiteOpenHelper(Context context) {

super(context, DATABASE_NAME, null, DATABASE_VERSION);

}

@Override

public void onCreate(SQLiteDatabase sqLiteDatabase) {

sqLiteDatabase.execSQL(CREATE_TABLE); //执行SQL语句,创建数据库

}

@Override

public void onUpgrade(SQLiteDatabase sqLiteDatabase, int i, int i1) {

}

}

“`

在上面的代码中,MySQLiteOpenHelper类继承自SQLiteOpenHelper类。

其中,DATABASE_NAME和DATABASE_VERSION分别表示数据库的名称和版本号。在MySQLiteOpenHelper的构造函数中,调用了SQLiteOpenHelper的构造函数,并传入了数据库的名称和版本号。

CREATE_TABLE语句定义了一个person表,包括id、name和age三个字段。在onCreate()方法中,执行了这条CREATE_TABLE语句,创建了数据库。

二、插入数据

插入数据是数据库操作中最基本的操作之一。以下是一个示例代码:

“`java

public class PersonDao {

private MySQLiteOpenHelper mySQLiteOpenHelper;

public PersonDao(Context context) {

mySQLiteOpenHelper = new MySQLiteOpenHelper(context);

}

/**

* 插入一条数据

* @param person 待插入的数据

*/

public void insert(Person person) {

SQLiteDatabase db = mySQLiteOpenHelper.getWritableDatabase();

ContentValues values = new ContentValues();

values.put(“name”, person.getName());

values.put(“age”, person.getAge());

db.insert(“person”, null, values);

db.close();

}

}

“`

在上面的代码中,insert()方法是向person表中插入一条数据的方法。

通过MySQLiteOpenHelper获取SQLiteDatabase对象。

然后,使用ContentValues构建需要插入的数据。

调用db.insert()方法,将数据插入到person表中。

三、查询数据

查询数据是数据库操作中另一个基本操作。以下是一个示例代码:

“`java

public class PersonDao {

private MySQLiteOpenHelper mySQLiteOpenHelper;

public PersonDao(Context context) {

mySQLiteOpenHelper = new MySQLiteOpenHelper(context);

}

/**

* 查询所有数据

* @return 所有数据的

*/

public List queryAll() {

SQLiteDatabase db = mySQLiteOpenHelper.getReadableDatabase();

Cursor cursor = db.query(“person”, null, null, null, null, null, null);

List personList = new ArrayList();

while (cursor.moveToNext()) {

Person person = new Person();

person.setId(cursor.getInt(cursor.getColumnIndex(“id”)));

person.setName(cursor.getString(cursor.getColumnIndex(“name”)));

person.setAge(cursor.getInt(cursor.getColumnIndex(“age”)));

personList.add(person);

}

cursor.close();

db.close();

return personList;

}

}

“`

在上面的代码中,queryAll()方法是查询所有用户数据的方法。

通过MySQLiteOpenHelper获取SQLiteDatabase对象。

然后,使用db.query()方法,查询person表中的所有数据。由于想要查询所有数据,所以参数传入null。最后返回的是Cursor对象。

接着,遍历Cursor对象,通过cursor.getInt()和cursor.getString()方法获取id、name和age字段的值,并将数据封装到Person对象中。将所有Person对象添加到List中,最后返回List。

注意:使用完Cursor和SQLiteDatabase对象后,需要调用close()方法进行关闭操作。

四、修改数据

修改数据是数据库操作中很重要的一个操作。以下是一个示例代码:

“`java

public class PersonDao {

private MySQLiteOpenHelper mySQLiteOpenHelper;

public PersonDao(Context context) {

mySQLiteOpenHelper = new MySQLiteOpenHelper(context);

}

/**

* 更新数据

* @param person 待更新的数据

*/

public void update(Person person) {

SQLiteDatabase db = mySQLiteOpenHelper.getWritableDatabase();

ContentValues values = new ContentValues();

values.put(“name”, person.getName());

values.put(“age”, person.getAge());

db.update(“person”, values, “id=?”, new String[]{String.valueOf(person.getId())});

db.close();

}

}

“`

在上面的代码中,update()方法是更新person表中的数据的方法。

通过MySQLiteOpenHelper获取SQLiteDatabase对象。

然后,使用ContentValues构建需要更新的数据。

接着,使用db.update()方法,将更新的数据和需要更新的条件传入。

调用db.close()方法进行关闭操作。

五、删除数据

删除数据也是数据库操作中很重要的一个操作。以下是一个示例代码:

“`java

public class PersonDao {

private MySQLiteOpenHelper mySQLiteOpenHelper;

public PersonDao(Context context) {

mySQLiteOpenHelper = new MySQLiteOpenHelper(context);

}

/**

* 删除数据

* @param person 待删除的数据

*/

public void delete(Person person) {

SQLiteDatabase db = mySQLiteOpenHelper.getWritableDatabase();

db.delete(“person”, “id=?”, new String[]{String.valueOf(person.getId())});

db.close();

}

}

“`

在上面的代码中,delete()方法是删除person表中的数据的方法。

通过MySQLiteOpenHelper获取SQLiteDatabase对象。

然后,使用db.delete()方法,将需要删除的数据的id传入。

调用db.close()方法进行关闭操作。

六、


数据运维技术 » 安卓数据库操作源码:增删改查 (安卓数据库的增删改查源码)