Android实现数据库登入信息存储 (android利用数据库记入登入信息)

随着智能手机的普及,移动应用程序的开发日益受到关注。其中,数据库存储是一项非常基本而重要的任务,这是因为大多数应用程序需要存储用户数据,例如用户的登录信息。本文将介绍如何在Android应用程序中使用数据库来存储用户登录信息。

一、创建Android项目

在Android Studio中创建新项目,选择Empty Activity。然后,我们需要添加SQLiteDatabase类以实现数据库查询和更新。

二、创建数据表

接下来,我们需要定义一个数据表来存储用户登录信息。在这个例子中,我们需要存储用户的用户名和密码。可以将这些信息存储在同一个表中,也可以将它们分别存储在不同的表中。

示例代码如下:

“`java

public class UserDbHelper extends SQLiteOpenHelper {

public static final int DATABASE_VERSION = 1;

public static final String DATABASE_NAME = “User.db”;

public static final String TABLE_NAME = “users”;

public static final String COLUMN_NAME_USERNAME = “username”;

public static final String COLUMN_NAME_PASSWORD = “password”;

private static final String SQL_CREATE_ENTRIES =

“CREATE TABLE ” + TABLE_NAME + ” (” +

COLUMN_NAME_USERNAME + ” TEXT,” +

COLUMN_NAME_PASSWORD + ” TEXT)”;

private static final String SQL_DELETE_ENTRIES =

“DROP TABLE IF EXISTS ” + TABLE_NAME;

public UserDbHelper(Context context) {

super(context, DATABASE_NAME, null, DATABASE_VERSION);

}

public void onCreate(SQLiteDatabase db) {

db.execSQL(SQL_CREATE_ENTRIES);

}

public void onUpgrade(SQLiteDatabase db, int oldVersion, int newVersion) {

db.execSQL(SQL_DELETE_ENTRIES);

onCreate(db);

}

public void onDowngrade(SQLiteDatabase db, int oldVersion, int newVersion) {

onUpgrade(db, oldVersion, newVersion);

}

}

“`

以上代码声明了一个名为UserDbHelper的类,这是SQLiteOpenHelper类的子类,用于创建和更新数据库。SQL_CREATE_ENTRIES常量定义了一个用户表,它包含两个字段:username和password。

三、添加数据

现在,我们已经定义了一个数据表,我们需要将用户信息添加到它中。为此,我们创建一个User类,并使用它来创建一个方法,用于将新的用户添加到数据库。在用户被添加到数据库之前,我们需要检查数据库是否已经包含该用户。如果数据库中已经存在具有相同用户名的其他用户,则不能添加该用户。

示例代码如下:

“`java

public class User {

public String username;

public String password;

public User(String username, String password) {

this.username = username;

this.password = password;

}

}

public boolean addUser(String username, String password) {

SQLiteDatabase db = getWritableDatabase();

ContentValues values = new ContentValues();

values.put(UserDbHelper.COLUMN_NAME_USERNAME, username);

values.put(UserDbHelper.COLUMN_NAME_PASSWORD, password);

long newRowId = db.insert(UserDbHelper.TABLE_NAME, null, values);

return newRowId != -1;

}

“`

以上代码定义了一个名为addUser的方法,并通过它将新的用户添加到数据库中。如果添加成功,则返回true,否则返回false。该方法使用ContentValues对象来插入用户名和密码。如果插入操作失败,则返回-1。

四、查询数据

现在,我们已经能够将用户添加到数据库中,我们需要能够从数据库中检索用户信息。为此,我们创建一个getUser方法,该方法接受一个用户名作为参数,并返回与该用户名匹配的用户信息。

示例代码如下:

“`java

public User getUser(String username) {

String[] projection = {

UserDbHelper.COLUMN_NAME_USERNAME,

UserDbHelper.COLUMN_NAME_PASSWORD

};

String selection = UserDbHelper.COLUMN_NAME_USERNAME + ” = ?”;

String[] selectionArgs = { username };

Cursor cursor = db.query(

UserDbHelper.TABLE_NAME,

projection,

selection,

selectionArgs,

null,

null,

null

);

User user = null;

if (cursor.moveToFirst()) {

String password = cursor.getString(cursor.getColumnIndex(UserDbHelper.COLUMN_NAME_PASSWORD));

user = new User(username, password);

}

cursor.close();

return user;

}

“`

以上代码定义了一个getUser方法,它使用一个用户名来查询数据库,并返回与该用户名匹配的用户信息。我们定义了一个projection数组,该数组包含要查询的列名。然后,我们定义了selection字符串,它包含了一个查询条件(即,匹配用户名的条件)。我们将用户名作为参数提供给查询方法。同时,我们定义了一个selectionArgs数组,该数组包含了该条件的值。

接下来,我们调用query方法来执行查询。该方法的参数设置如下:用于查询的表名、projection数组、selection字符串、selectionArgs数组、group by字符串、having字符串和order by字符串。返回的Cursor对象包含查询结果。

如果Cursor对象包含查询结果,则我们通过通过findViewById方法来检索username和password字段。然后,我们创建了一个User对象,并返回它。

五、结论

在本文中,我们展示了如何使用SQLite数据库在Android应用程序中存储用户登录信息。我们定义了一个名为UserDbHelper的类,它继承自SQLiteOpenHelper抽象类,并实现了数据库的创建和更新。我们还创建了一个名为User的类,该类包含用户名和密码,并提供了一个addUser方法,用于将新用户添加到数据库中。我们还创建了一个名为getUser的方法,它接受一个用户名作为参数,并返回匹配该用户名的用户信息。

实际上,本文只是数据库存储的一个简单例子。在实际应用程序中,可能需要存储更多的用户信息。不过,通过本文,我们可以深入了解如何在Android应用程序中使用数据库存储用户信息。这将有助于我们开发更加高效和可靠的应用程序。


数据运维技术 » Android实现数据库登入信息存储 (android利用数据库记入登入信息)