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应用程序中使用数据库存储用户信息。这将有助于我们开发更加高效和可靠的应用程序。