admin 管理员组

文章数量: 1184232


2024年1月16日发(作者:java在线解答)

android dao 数据库简单用法

Android DAO 数据库简单用法

在Android开发中,使用数据库是非常常见的操作之一。数据库的使用可以帮助我们持久化数据,并允许我们在应用程序中进行数据的查询、插入、更新和删除操作。在本文中,我们将重点讨论Android中的DAO模式,并介绍如何在Android应用程序中实现简单的数据库操作。

一、什么是DAO模式?

DAO(Data Access Object)模式是一种设计模式,它的主要目的是将数据访问逻辑与业务逻辑分离。在Android中,DAO模式通常用于封装数据库操作,将数据库的增删改查等操作封装在DAO类中,使业务逻辑模块与数据访问模块解耦,提高代码的可维护性和可测试性。

二、创建数据库

首先,我们需要创建一个数据库。Android提供了SQLite数据库,可以用于存储应用程序的数据。要创建一个数据库,我们需要继承SQLiteOpenHelper类,并实现onCreate()和onUpgrade()方法。

1. 创建一个名为DatabaseHelper的类,继承自SQLiteOpenHelper。

java

public class DatabaseHelper extends SQLiteOpenHelper {

数据库名和版本号

private static final String DATABASE_NAME = "my_database";

private static final int DATABASE_VERSION = 1;

表名和列名

private static final String TABLE_NAME = "my_table";

private static final String COLUMN_ID = "id";

private static final String COLUMN_NAME = "name";

...

public DatabaseHelper(Context context) {

super(context, DATABASE_NAME, null,

DATABASE_VERSION);

}

@Override

public void onCreate(SQLiteDatabase db) {

创建表的SQL语句

String CREATE_TABLE_SQL = "CREATE TABLE " +

TABLE_NAME + " (" +

COLUMN_ID + " INTEGER PRIMARY KEY

AUTOINCREMENT, " +

COLUMN_NAME + " TEXT)";

执行创建表的操作

L(CREATE_TABLE_SQL);

}

@Override

public void onUpgrade(SQLiteDatabase db, int oldVersion, int

newVersion) {

备份数据并删除原表

String BACKUP_TABLE_SQL = "ALTER TABLE " +

TABLE_NAME + " RENAME TO temp_"

+ TABLE_NAME;

L(BACKUP_TABLE_SQL);

L("DROP TABLE IF EXISTS " + TABLE_NAME);

创建新表

onCreate(db);

将备份数据恢复到新表

String RESTORE_TABLE_SQL = "INSERT INTO " +

TABLE_NAME + " SELECT * FROM temp_"

+ TABLE_NAME;

L(RESTORE_TABLE_SQL);

删除备份表

L("DROP TABLE IF EXISTS temp_" +

TABLE_NAME);

}

}

2. 在需要使用数据库的地方,创建DatabaseHelper对象,并获取可写数据库。

java

创建DatabaseHelper对象

DatabaseHelper databaseHelper = new DatabaseHelper(context);

获取可写数据库

SQLiteDatabase db = tableDatabase();

三、定义数据对应的实体类

我们需要为数据库中的每个表定义一个对应的实体类。实体类通常包含有关表的列的成员变量,并提供getter和setter方法。

例如,我们创建一个名为User的实体类,代表数据库中的一个用户表。

java

public class User {

private int id;

private String name;

public User(int id, String name) {

= id;

= name;

}

public int getId() {

return id;

}

public void setId(int id) {

= id;

}

public String getName() {

return name;

}

public void setName(String name) {

= name;

}

...

}

四、实现DAO类

接下来,我们可以实现一个DAO类来封装数据库操作。DAO类负责执行数据库的增删改查操作,包括数据的插入、更新、删除和查询。

1. 创建一个名为UserDao的类,用于操作用户表。

java

public class UserDao {

表名和列名

private static final String TABLE_NAME = "my_table";

private static final String COLUMN_ID = "id";

private static final String COLUMN_NAME = "name";

...

private SQLiteDatabase db;

public UserDao(SQLiteDatabase db) {

= db;

}

插入用户

public void insertUser(User user) {

ContentValues values = new ContentValues();

(COLUMN_NAME, e());

(TABLE_NAME, null, values);

}

更新用户

public void updateUser(User user) {

ContentValues values = new ContentValues();

(COLUMN_NAME, e());

String whereClause = COLUMN_ID + "=?";

String[] whereArgs = {f(())};

(TABLE_NAME, values, whereClause, whereArgs);

}

删除用户

public void deleteUser(User user) {

String whereClause = COLUMN_ID + "=?";

String[] whereArgs = {f(())};

(TABLE_NAME, whereClause, whereArgs);

}

查询用户

public List queryUsers() {

List userList = new ArrayList<>();

Cursor cursor = (TABLE_NAME, null, null, null, null,

null, null);

if (First()) {

do {

int id =

(umnIndex(COLUMN_ID));

String name =

ing(umnIndex(COLUMN_NAME));

User user = new User(id, name);

(user);

} while (Next());

}

();

return userList;

}

}

2. 在需要使用数据库的地方,创建Dao对象,并执行数据库操作。

java

创建Dao对象

UserDao userDao = new UserDao(db);

插入用户

User user1 = new User(1, "Alice");

User(user1);

更新用户

User user2 = new User(1, "Bob");

User(user2);

删除用户

User(user2);

查询用户

List userList = sers();

总结

通过使用DAO模式,我们可以有效地将数据访问逻辑与业务逻辑分离,提高代码的可维护性和可测试性。在Android中,我们可以使用SQLiteOpenHelper来创建数据库,并通过自定义的DAO类来执行数据库的增删改查操作。这样,我们能够更方便地对数据进行操作,并提供更好的用户体验。

以上是Android DAO数据库简单用法的相关介绍,希望对你有所帮助。如果还有任何疑问,请随时咨询。


本文标签: 数据库 数据 操作 创建 逻辑