Android 连接SQLite实现注册登录功能

在移动应用开发中,用户注册和登录功能是最常见的需求之一。在 Android 平台上,我们可以使用 SQLite 数据库来存储用户信息,实现这一功能。本文将介绍如何在 Android 应用中使用 SQLite 数据库来实现用户注册和登录。

在这里插入图片描述



在这里插入图片描述

准备工作

在开始之前,请确保你的 Android 开发环境已经搭建好,包括 Android Studio 和相应的 SDK。


在这里插入图片描述

具体实现步骤

步骤 1: 创建数据库帮助类

首先,你需要创建一个数据库帮助类,用于管理数据库的创建和版本管理。

import android.content.Context;
import android.database.sqlite.SQLiteDatabase;
import android.database.sqlite.SQLiteOpenHelper;

public class DatabaseHelper extends SQLiteOpenHelper {

    private static final String DATABASE_NAME = "UserDatabase";
    private static final int DATABASE_VERSION = 1;

    private static final String TABLE_USERS = "users";
    private static final String COLUMN_ID = "id";
    private static final String COLUMN_USERNAME = "username";
    private static final String COLUMN_PASSWORD = "password";

    private static final String SQL_CREATE_ENTRIES =
            "CREATE TABLE " + TABLE_USERS + " (" +
                    COLUMN_ID + " INTEGER PRIMARY KEY AUTOINCREMENT," +
                    COLUMN_USERNAME + " TEXT," +
                    COLUMN_PASSWORD + " TEXT)";

    public DatabaseHelper(Context context) {
        super(context, DATABASE_NAME, null, DATABASE_VERSION);
    }

    @Override
    public void onCreate(SQLiteDatabase db) {
        db.execSQL(SQL_CREATE_ENTRIES);
    }

    @Override
    public void onUpgrade(SQLiteDatabase db, int oldVersion, int newVersion) {
        // This database is only a cache for online data, so its upgrade policy is
        // to simply to discard the data and start over
        db.execSQL("DROP TABLE IF EXISTS " + TABLE_USERS);
        onCreate(db);
    }
}

步骤 2: 创建用户注册功能

接下来,你需要创建一个方法来添加新用户到数据库。

public class UserDBHelper {

    private DatabaseHelper dbHelper;

    public UserDBHelper(Context context) {
        dbHelper = new DatabaseHelper(context);
    }

    public boolean register(String username, String password) {
        SQLiteDatabase db = dbHelper.getWritableDatabase();
        ContentValues values = new ContentValues();
        values.put(DatabaseHelper.COLUMN_USERNAME, username);
        values.put(DatabaseHelper.COLUMN_PASSWORD, password);

        long result = db.insert(DatabaseHelper.TABLE_USERS, null, values);
        db.close();
        return result != -1;
    }
}

步骤 3: 创建用户登录功能

然后,你需要创建一个方法来验证用户名和密码。

public boolean login(String username, String password) {
    SQLiteDatabase db = dbHelper.getReadableDatabase();

    String[] projection = {
        DatabaseHelper.COLUMN_ID,
        DatabaseHelper.COLUMN_USERNAME,
        DatabaseHelper.COLUMN_PASSWORD
    };

    String selection = DatabaseHelper.COLUMN_USERNAME + "=? AND " + DatabaseHelper.COLUMN_PASSWORD + "=?";
    String[] selectionArgs = {username, password};

    Cursor cursor = db.query(
        DatabaseHelper.TABLE_USERS,   // The table to query
        projection,                   // The columns to return
        selection,                    // The columns for the WHERE clause
        selectionArgs,                // The values for the WHERE clause
        null,                         // don't group the rows
        null,                         // don't filter by row groups
        null                          // The sort order
    );

    int cursorCount = cursor.getCount();
    cursor.close();
    db.close();

    return cursorCount > 0;
}

步骤 4: 使用注册和登录功能

最后,在你的 Activity 或者其他逻辑中,你可以使用这些方法来注册和登录用户。

UserDBHelper userDBHelper = new UserDBHelper(this);

// 注册用户
boolean isRegistered = userDBHelper.register("username", "password");
if (isRegistered) {
    // 注册成功
} else {
    // 注册失败
}

// 登录用户
boolean isLoggedIn = userDBHelper.login("username", "password");
if (isLoggedIn) {
    // 登录成功
} else {
    // 登录失败
}

在这里插入图片描述

安全考虑

请注意,本例是一个非常基础的实现,没有考虑加密存储密码或防止 SQL 注入等安全措施。在实际应用中,你应该使用更安全的密码存储和验证机制,例如使用哈希加盐来存储密码,并在登录时进行验证。此外,对于生产环境,你还需要考虑使用更高级的数据库解决方案,如 Room Persistence Library,它提供了更简洁的 API 和更好的抽象层来处理数据库操作。


在这里插入图片描述

结语

通过本文的介绍,你应该能够理解如何在 Android 应用中使用 SQLite 数据库来实现用户注册和登录功能。这只是一个起点,你可以根据需要扩展和改进这个功能,例如添加用户验证、密码重置等功能。


在这里插入图片描述



📂 Unity 开发技能 | 目录索引

📂 Unity 常用插件 | 总目录

📂 Unity 开发资源 | 目录索引

📂 Unity 源码工程 | 总目录

🍉🍉🍉 如果觉得这篇文对你有帮助的话,请点个赞👍、收藏⭐️下吧,非常感谢! 💕💕💕


在这里插入图片描述

🥷🏻博主简介:20年软件开发经验,经历嵌入式驱动开发、Android开发、Unity游戏开发。积累收藏了大量游戏开发资源和素材,如有需要请联系我。

互3互推也请联系我…

在这里插入图片描述

一.创建一个DataBaseHelper DataBaseHelper是一个访问SQLite的助类,提供两个方面的功能 1.getReadableDatebase(),getWriteableDatabase()可以获取SQLiteDatabase对象,通过 2.提供了onCreate()和onUpdate()两个回调函数,允许我们常见和升级数据库是进行使用 A、 在SQLiteOpenHelper的子类当中,必须要有的构造函数 B、该函数是在第一次创建数据库的时候执行,实际上是在第一次得到SQLiteDataBase对象的时候onCreate 二、创建一个实体person类并且给字段和封装 三、创建一个业务类对SQL的CRUD操作 1.getWritableDatabase()和getReadableDatabase()的区别 ,两个方法都可以获取一个用于操作数据库SQLiteDatabase实例 2.execSQL(增,删,改都是这个方法)和close();android内部有缓存可关闭也不关闭也行,查询rawQuery是方法 3.在分页有到Cursor(游标)取游标下一个值cursor.moveToNext(),用游标对象接数据 "select * from person limit ?,?" person不能加上where 关键字 4.在删除注意:sb.deleteCharAt(sb.length() - 1); 四、AndroidCRUD业务对SQLite的CRUD操作 1.ContentValues对象的使用 2.android内部insert添加数据的方法,而且values这个不给值也必须要执行,而主键是不是null的其他字段的值是为null 3.insert update query delete 五、单元测试类要注意的 AndroidCRUDService curdService = new AndroidCRUDService(this.getContext()); /* * 注意:getContext必须在我们使用前已经注解进去的,在使用前要实力化,而且是使用后才有上下文 *一般设置为局部对象 */ 六、AndroidManifest.xml的配置 <!-- 配置用户类库android.test.runner测试 --> package jll.sqlitedb; import android.content.Context; import android.database.sqlite.SQLiteDatabase; import android.database.sqlite.SQLiteOpenHelper; import android.database.sqlite.SQLiteDatabase.CursorFactory; /** * *@author Administrator DataBaseHelper是一个访问SQLite的助类,提供两个方面的功能 * 1.getReadableDatebase(),getWriteableDatabase()可以获取SQLiteDatabase对象,通过 * 2.提供了onCreate()和onUpdate()两个回调函数,允许我们常见和升级数据库是进行使用 */ public class DataBaseHelper extends SQLiteOpenHelper { // 给一个默认的SQLite数据库名 private static final String DataBaseName = "SQLite_DB"; private static final int VERSION = 2; // 在SQLiteOpenHelper的子类当中,必须要有的构造函数 public DataBaseHelper(Context context, String name, CursorFacto
评论 2
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Unity打怪升级

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值