Android SQLite 数据库操作实验:用户管理系统

本实验将通过一个简单的 Android 应用,演示如何使用 SQLite 数据库进行用户管理。应用包含两个输入框用于输入用户名和密码,以及五个按钮分别用于创建数据库、新增数据、修改数据、删除数据和查询数据。

实验要求

  1. 在一个 Activity 界面上有两个输入框,分别是用户名和密码。
  2. 还有 5 个按钮,分别是创建数据库,新增数据、修改数据、删除数据、查询数据。
  3. 其中,创建数据库按钮的功能是创建一个 'test.db' 数据库,同时创建一张表 'user_info' 用于存储用户信息(包括用户名、密码和自增主键 id);
  4. 新增数据按钮功能是将输入框中的数据存入 'user_info' 表中;
  5. 修改数据按钮功能是修改用户的密码;
  6. 删除数据按钮功能是删除用户信息;
  7. 查询数据按钮功能是查询出表格中所有的记录,以 log 日志的形式打印出来。

实验步骤

  1. 创建布局文件,添加两个 EditText 和五个 Button。
  2. 创建 DatabaseHelper 类,继承自 SQLiteOpenHelper,用于创建和管理数据库。
  3. 在 DatabaseHelper 中实现 onCreate() 方法,用于创建表格。
  4. 在 Activity 中实例化 DatabaseHelper 类,并在创建数据库按钮的点击事件中调用 getWritableDatabase() 方法创建数据库和表格。
  5. 在新增数据按钮的点击事件中,通过 ContentValues 将用户信息插入表格中。
  6. 在修改数据按钮的点击事件中,通过 ContentValues 和 update() 方法修改用户密码。
  7. 在删除数据按钮的点击事件中,通过 delete() 方法删除用户信息。
  8. 在查询数据按钮的点击事件中,通过 query() 方法查询表格中所有记录,并通过 Log 输出到控制台。
  9. 运行程序,测试各个功能是否正常。

代码实现

布局文件 activity_main.xml

<?xml version='1.0' encoding='utf-8'?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:orientation="vertical"
    android:layout_width="match_parent"
    android:layout_height="match_parent">

    <EditText
        android:id="@+id/et_username"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:hint="用户名"/>

    <EditText
        android:id="@+id/et_password"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:hint="密码"/>

    <Button
        android:id="@+id/btn_create_db"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:text="创建数据库"/>

    <Button
        android:id="@+id/btn_insert_data"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:text="新增数据"/>

    <Button
        android:id="@+id/btn_update_data"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:text="修改数据"/>

    <Button
        android:id="@+id/btn_delete_data"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:text="删除数据"/>

    <Button
        android:id="@+id/btn_query_data"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:text="查询数据"/>

</LinearLayout>

DatabaseHelper 类

public class DatabaseHelper extends SQLiteOpenHelper {

    private static final String DB_NAME = 'test.db';
    private static final int DB_VERSION = 1;

    public DatabaseHelper(Context context) {
        super(context, DB_NAME, null, DB_VERSION);
    }

    @Override
    public void onCreate(SQLiteDatabase db) {
        String sql = "CREATE TABLE user_info("
                + "id INTEGER PRIMARY KEY AUTOINCREMENT,"
                + "username TEXT,"
                + "password TEXT");";
        db.execSQL(sql);
    }

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

    }
}

Activity 类

public class MainActivity extends AppCompatActivity {

    private EditText etUsername;
    private EditText etPassword;

    private SQLiteDatabase db;

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);

        etUsername = findViewById(R.id.et_username);
        etPassword = findViewById(R.id.et_password);

        final DatabaseHelper dbHelper = new DatabaseHelper(this);

        Button btnCreateDb = findViewById(R.id.btn_create_db);
        btnCreateDb.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View v) {
                db = dbHelper.getWritableDatabase();
            }
        });

        Button btnInsertData = findViewById(R.id.btn_insert_data);
        btnInsertData.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View v) {
                String username = etUsername.getText().toString();
                String password = etPassword.getText().toString();

                ContentValues values = new ContentValues();
                values.put("username", username);
                values.put("password", password);

                db.insert("user_info", null, values);
            }
        });

        Button btnUpdateData = findViewById(R.id.btn_update_data);
        btnUpdateData.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View v) {
                String username = etUsername.getText().toString();
                String password = etPassword.getText().toString();

                ContentValues values = new ContentValues();
                values.put("password", password);

                db.update("user_info", values, "username=?", new String[]{username});
            }
        });

        Button btnDeleteData = findViewById(R.id.btn_delete_data);
        btnDeleteData.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View v) {
                String username = etUsername.getText().toString();

                db.delete("user_info", "username=?", new String[]{username});
            }
        });

        Button btnQueryData = findViewById(R.id.btn_query_data);
        btnQueryData.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View v) {
                Cursor cursor = db.query("user_info", null, null, null, null, null, null);
                if (cursor.moveToFirst()) {
                    do {
                        int id = cursor.getInt(cursor.getColumnIndex("id"));
                        String username = cursor.getString(cursor.getColumnIndex("username"));
                        String password = cursor.getString(cursor.getColumnIndex("password"));

                        Log.d("MainActivity", "id: " + id + ", username: " + username + ", password: " + password);
                    } while (cursor.moveToNext());
                }
                cursor.close();
            }
        });
    }
}

注意:

  • 以上代码仅供参考,实际代码可能需要根据具体需求进行调整。
  • 在代码中,我们使用 'Log.d()' 方法将查询结果打印到控制台,你可以根据需要使用其他方法进行展示。
  • 为了便于理解,代码中省略了部分代码,例如 Activity 中的布局初始化等。
  • 本实验仅用于演示 SQLite 数据库的基本操作,实际应用中需要根据具体需求进行扩展和完善。
Android SQLite 数据库操作实验:用户管理系统

原文地址: https://www.cveoy.top/t/topic/nA6E 著作权归作者所有。请勿转载和采集!

免费AI点我,无需注册和登录