实验要求:在一个Activity界面上有两个输入框分别是用户名和密码。还有5个按钮分别是创建数据库新增数据、修改数据、删除数据、查询数据。其中创建数据库按钮的功能是创建一个testdb数据库同时创建一张表user_info用于存储用户信息包括用户名、密码和自增主键id;新增数据按钮功能是将输入框中的数据存入user_info表中;修改数据按钮功能是修改用户的密码;删除数据按钮功能是删除用户信息;查
以下是实现代码:
activity_main.xml:
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="vertical"
android:padding="16dp">
<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="密码"
android:inputType="textPassword"/>
<Button
android:id="@+id/btn_create_db"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:text="创建数据库"/>
<Button
android:id="@+id/btn_add"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:text="新增数据"/>
<Button
android:id="@+id/btn_update"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:text="修改数据"/>
<Button
android:id="@+id/btn_delete"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:text="删除数据"/>
<Button
android:id="@+id/btn_query"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:text="查询数据"/>
</LinearLayout>
MainActivity.java:
public class MainActivity extends AppCompatActivity implements View.OnClickListener {
private EditText etUsername, etPassword;
private Button btnCreateDb, btnAdd, btnUpdate, btnDelete, btnQuery;
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);
btnCreateDb = findViewById(R.id.btn_create_db);
btnAdd = findViewById(R.id.btn_add);
btnUpdate = findViewById(R.id.btn_update);
btnDelete = findViewById(R.id.btn_delete);
btnQuery = findViewById(R.id.btn_query);
btnCreateDb.setOnClickListener(this);
btnAdd.setOnClickListener(this);
btnUpdate.setOnClickListener(this);
btnDelete.setOnClickListener(this);
btnQuery.setOnClickListener(this);
}
@Override
public void onClick(View v) {
switch (v.getId()) {
case R.id.btn_create_db:
createDatabase();
break;
case R.id.btn_add:
addData();
break;
case R.id.btn_update:
updateData();
break;
case R.id.btn_delete:
deleteData();
break;
case R.id.btn_query:
queryData();
break;
}
}
private void createDatabase() {
db = openOrCreateDatabase("test.db", MODE_PRIVATE, null);
db.execSQL("CREATE TABLE IF NOT EXISTS user_info(_id INTEGER PRIMARY KEY AUTOINCREMENT,username TEXT,password TEXT)");
Toast.makeText(this, "数据库创建成功!", Toast.LENGTH_SHORT).show();
}
private void addData() {
String username = etUsername.getText().toString().trim();
String password = etPassword.getText().toString().trim();
if (TextUtils.isEmpty(username) || TextUtils.isEmpty(password)) {
Toast.makeText(this, "用户名和密码不能为空!", Toast.LENGTH_SHORT).show();
return;
}
ContentValues values = new ContentValues();
values.put("username", username);
values.put("password", password);
long id = db.insert("user_info", null, values);
if (id != -1) {
Toast.makeText(this, "新增数据成功!", Toast.LENGTH_SHORT).show();
} else {
Toast.makeText(this, "新增数据失败!", Toast.LENGTH_SHORT).show();
}
}
private void updateData() {
String username = etUsername.getText().toString().trim();
String password = etPassword.getText().toString().trim();
if (TextUtils.isEmpty(username) || TextUtils.isEmpty(password)) {
Toast.makeText(this, "用户名和密码不能为空!", Toast.LENGTH_SHORT).show();
return;
}
ContentValues values = new ContentValues();
values.put("password", password);
int rows = db.update("user_info", values, "username=?", new String[]{username});
if (rows > 0) {
Toast.makeText(this, "修改数据成功!", Toast.LENGTH_SHORT).show();
} else {
Toast.makeText(this, "修改数据失败!", Toast.LENGTH_SHORT).show();
}
}
private void deleteData() {
String username = etUsername.getText().toString().trim();
if (TextUtils.isEmpty(username)) {
Toast.makeText(this, "用户名不能为空!", Toast.LENGTH_SHORT).show();
return;
}
int rows = db.delete("user_info", "username=?", new String[]{username});
if (rows > 0) {
Toast.makeText(this, "删除数据成功!", Toast.LENGTH_SHORT).show();
} else {
Toast.makeText(this, "删除数据失败!", Toast.LENGTH_SHORT).show();
}
}
private void queryData() {
Cursor cursor = db.query("user_info", null, null, null, null, null, null);
if (cursor != null && 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.i("MainActivity", "id: " + id + ", username: " + username + ", password: " + password);
} while (cursor.moveToNext());
cursor.close();
} else {
Toast.makeText(this, "查询数据失败或表格为空!", Toast.LENGTH_SHORT).show();
}
}
@Override
protected void onDestroy() {
super.onDestroy();
if (db != null) {
db.close();
}
}
}
原文地址: https://www.cveoy.top/t/topic/bTBV 著作权归作者所有。请勿转载和采集!