在Android应用开发中,SQLite是一个重要的组成部分,它是一个轻量级的、嵌入式的数据库,非常适合用于存储应用程序中的数据。本教程将通过一个简单的“SQLiteDemo”实例,讲解如何在Android中实现SQLite数据库的注册与登录功能。 我们需要创建一个SQLite数据库。在Android中,我们通常会创建一个继承自`SQLiteOpenHelper`的类,如`DatabaseHelper`。这个类有两个关键方法:`onCreate()`和`onUpgrade()`。`onCreate()`方法在数据库首次创建时被调用,用来创建表结构;`onUpgrade()`则在升级数据库版本时执行,用于更新或修改表结构。 ```java public class DatabaseHelper extends SQLiteOpenHelper { // 数据库版本号 private static final int DATABASE_VERSION = 1; // 数据库名称 private static final String DATABASE_NAME = "Login.db"; // 创建用户表的SQL语句 private static final String CREATE_TABLE_USERS = "CREATE TABLE " + "users" + "(" + "id" + " INTEGER PRIMARY KEY," + "username" + " TEXT," + "password" + " TEXT" + ")"; // 构造函数 public DatabaseHelper(Context context) { super(context, DATABASE_NAME, null, DATABASE_VERSION); } // onCreate()方法 @Override public void onCreate(SQLiteDatabase db) { db.execSQL(CREATE_TABLE_USERS); // 执行创建表的SQL语句 } // onUpgrade()方法 @Override public void onUpgrade(SQLiteDatabase db, int oldVersion, int newVersion) { // 当数据库版本升级时,这里可以删除旧表并重新创建新表 db.execSQL("DROP TABLE IF EXISTS users"); onCreate(db); } } ``` 接下来,我们需要实现注册功能。创建一个`RegisterActivity`,在这个活动中,用户输入用户名和密码,然后调用`DatabaseHelper`的方法将这些信息存储到数据库中: ```java public class RegisterActivity extends AppCompatActivity { // 用户名和密码的EditText EditText etUsername, etPassword; // DatabaseHelper对象 DatabaseHelper dbHelper; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_register); etUsername = findViewById(R.id.et_username); etPassword = findViewById(R.id.et_password); dbHelper = new DatabaseHelper(this); Button btnRegister = findViewById(R.id.btn_register); btnRegister.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View v) { String username = etUsername.getText().toString(); String password = etPassword.getText().toString(); // 验证输入并存储到数据库 if (validateInput(username, password)) { SQLiteDatabase db = dbHelper.getWritableDatabase(); ContentValues values = new ContentValues(); values.put(DatabaseHelper.COLUMN_USERNAME, username); values.put(DatabaseHelper.COLUMN_PASSWORD, password); db.insert(DatabaseHelper.TABLE_USERS, null, values); Toast.makeText(RegisterActivity.this, "用户已注册", Toast.LENGTH_SHORT).show(); } } }); } // 验证输入的方法 private boolean validateInput(String username, String password) { // 这里可以添加更多的验证逻辑,例如检查用户名是否为空,密码长度是否符合要求等 return !TextUtils.isEmpty(username) && !TextUtils.isEmpty(password); } } ``` 完成注册后,我们来实现登录功能。创建一个`LoginActivity`,用户输入用户名和密码,然后检查数据库中是否存在匹配的记录: ```java public class LoginActivity extends AppCompatActivity { EditText etUsername, etPassword; DatabaseHelper dbHelper; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_login); etUsername = findViewById(R.id.et_username); etPassword = findViewById(R.id.et_password); dbHelper = new DatabaseHelper(this); Button btnLogin = findViewById(R.id.btn_login); btnLogin.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View v) { String username = etUsername.getText().toString(); String password = etPassword.getText().toString(); // 检查用户名和密码是否匹配 if (checkCredentials(username, password)) { Toast.makeText(LoginActivity.this, "登录成功", Toast.LENGTH_SHORT).show(); // 这里可以跳转到主界面或其他操作 } else { Toast.makeText(LoginActivity.this, "用户名或密码错误", Toast.LENGTH_SHORT).show(); } } }); } // 检查凭证的方法 private boolean checkCredentials(String username, String password) { SQLiteDatabase db = dbHelper.getReadableDatabase(); Cursor cursor = db.query(DatabaseHelper.TABLE_USERS, new String[]{DatabaseHelper.COLUMN_ID}, DatabaseHelper.COLUMN_USERNAME + "=?", new String[]{username}, null, null, null); if (cursor.moveToFirst()) { // 检查密码是否匹配 String storedPassword = cursor.getString(cursor.getColumnIndex(DatabaseHelper.COLUMN_PASSWORD)); if (storedPassword.equals(password)) { cursor.close(); return true; } } cursor.close(); return false; } } ``` 在这个简单的SQLiteDemo中,我们学会了如何创建SQLite数据库,定义表结构,以及如何在Android应用中进行数据的增删查改。在实际项目中,可能还需要处理更复杂的业务逻辑,例如数据验证、错误处理、数据加密等。此外,为了提高性能和减少内存消耗,还可以使用ContentProvider、LiveData、Room库等高级技术。不过,这个基本的DEMO已经足够展示SQLite在Android登录系统中的核心应用。


































































































- 1

- u0103137432025-08-07还好,代码可以看下,但运行错误

- 粉丝: 1
我的内容管理 展开
我的资源 快来上传第一个资源
我的收益
登录查看自己的收益我的积分 登录查看自己的积分
我的C币 登录后查看C币余额
我的收藏
我的下载
下载帮助


最新资源
- 最新智慧城市指标体系说明.docx
- 基于云计算的电力信息系统安全技术讨论.doc
- 企业办公用品网络营销策划方案.doc
- 工程施工企业项目管理中的博弈分析.doc
- 网络公司的员工手册.doc
- 浅论不良网络文化对青少年的影响(2)(最新整理).pdf
- 基于双摄像头监考系统的实时截图与行为分析演示项目-双摄像头同步采集-考生行为监控-异常动作检测-考试过程记录-远程监考辅助-防作弊系统-教育考试应用-在线监考解决方案-AI智能分析.zip
- 物联网形势下的5G技术探析.doc
- 信息化标准体系建设.doc
- 对目前中国ASP市场的分析.doc
- CMM与项目管理.ppt
- 项目管理程序—修改版.doc
- 计算机操作系统课程设计方案.doc
- 警卫部队工程建设项目管理办法.doc
- 基于单片机的多点温度测量系统设计.doc
- ZZ020零部件测绘与CAD成图技术全国职业院校技能大赛.doc


