Android SQLite 数据库操作实验:用户管理系统
Android SQLite 数据库操作实验:用户管理系统
本实验将通过一个简单的 Android 应用,演示如何使用 SQLite 数据库进行用户管理。应用包含两个输入框用于输入用户名和密码,以及五个按钮分别用于创建数据库、新增数据、修改数据、删除数据和查询数据。
实验要求
- 在一个 Activity 界面上有两个输入框,分别是用户名和密码。
- 还有 5 个按钮,分别是创建数据库,新增数据、修改数据、删除数据、查询数据。
- 其中,创建数据库按钮的功能是创建一个 'test.db' 数据库,同时创建一张表 'user_info' 用于存储用户信息(包括用户名、密码和自增主键 id);
- 新增数据按钮功能是将输入框中的数据存入 'user_info' 表中;
- 修改数据按钮功能是修改用户的密码;
- 删除数据按钮功能是删除用户信息;
- 查询数据按钮功能是查询出表格中所有的记录,以 log 日志的形式打印出来。
实验步骤
- 创建布局文件,添加两个 EditText 和五个 Button。
- 创建 DatabaseHelper 类,继承自 SQLiteOpenHelper,用于创建和管理数据库。
- 在 DatabaseHelper 中实现 onCreate() 方法,用于创建表格。
- 在 Activity 中实例化 DatabaseHelper 类,并在创建数据库按钮的点击事件中调用 getWritableDatabase() 方法创建数据库和表格。
- 在新增数据按钮的点击事件中,通过 ContentValues 将用户信息插入表格中。
- 在修改数据按钮的点击事件中,通过 ContentValues 和 update() 方法修改用户密码。
- 在删除数据按钮的点击事件中,通过 delete() 方法删除用户信息。
- 在查询数据按钮的点击事件中,通过 query() 方法查询表格中所有记录,并通过 Log 输出到控制台。
- 运行程序,测试各个功能是否正常。
代码实现
布局文件 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 数据库的基本操作,实际应用中需要根据具体需求进行扩展和完善。
原文地址: https://www.cveoy.top/t/topic/nA6E 著作权归作者所有。请勿转载和采集!