本文共 5103 字,大约阅读时间需要 17 分钟。
本文将展示如何使用SQLite数据库在Android应用中进行用户信息管理。我们将通过创建一个简单的应用程序,展示数据库的增删改查操作。
项目主要包含以下文件:
activity_layout.xml:定义用户界面布局。MainActivity.java:实现主活动类,负责用户交互和数据库操作。User.java:定义一个User类,用于存储用户信息。MyDBHelper.java:定义一个帮助类,用于管理SQLite数据库。数据库名称为db,包含一个表user_info,字段如下:
_id(主键,自增)name(姓名,字符串类型)age(年龄,字符串类型)界面采用线性布局,包含四行:
添加数据:
ContentValues对象存储用户信息。查询数据:
清空数据:
public class MainActivity extends AppCompatActivity implements View.OnClickListener { private EditText etName; private EditText etAge; private Button btnSave; private Button btnClear; private LinearLayout llShow; private List users = new ArrayList<>(); private MyDBHelper myDBHelper; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); myDBHelper = new MyDBHelper(this, "db", null, 2); btnSave = findViewById(R.id.btn_save); btnClear = findViewById(R.id.btn_clear); llShow = findViewById(R.id.ll_show); btnSave.setOnClickListener(this); btnClear.setOnClickListener(this); loadUsers(); } @Override public void onClick(View v) { switch (v.getId()) { case R.id.btn_save: etName = findViewById(R.id.et_name); etAge = findViewById(R.id.et_age); if (etName.getText().isEmpty() || etAge.getText().isEmpty()) { Toast.makeText(this, "请填写完整信息!", Toast.LENGTH_SHORT).show(); return; } insert(etName.getText().toString(), etAge.getText().toString()); break; case R.id.btn_clear: clearData(); break; } } private void insert(String name, String age) { SQLiteDatabase db = myDBHelper.getWritableDatabase(); ContentValues values = new ContentValues(); values.put("name", name); values.put("age", age); long result = db.insert("user_info", null, values); if (result != -1) { Toast.makeText(this, "用户信息已成功添加!", Toast.LENGTH_SHORT).show(); loadUsers(); } db.close(); } private void clearData() { SQLiteDatabase db = myDBHelper.getWritableDatabase(); db.delete("user_info", null, null); db.close(); Toast.makeText(this, "数据库已清空!", Toast.LENGTH_SHORT).show(); llShow.removeAllViewsInLayout(); } private void loadUsers() { SQLiteDatabase db = myDBHelper.getWritableDatabase(); Cursor cursor = db.query("user_info", null, null, null, null, null, null); users.clear(); while (cursor.moveToNext()) { String name = cursor.getString(1); String age = cursor.getString(2); users.add(new User(null, name, age)); } cursor.close(); db.close(); updateShowView(); } private void updateShowView() { llShow.removeAllViewsInLayout(); for (User user : users) { TextView tv = new TextView(this); tv.setText("ID: " + user.getId() + "\n姓名: " + user.getName() + "\n年龄: " + user.getAge()); tv.setTextSize(16); llShow.addView(tv); } }} public class User { private String id; private String name; private String age; public User(String id, String name, String age) { this.id = id; this.name = name; this.age = age; } public String getId() { return id; } public String getName() { return name; } public String getAge() { return age; } @Override public String toString() { return "User{ " + id + ", " + name + ", " + age + "}"; }} public class MyDBHelper extends SQLiteOpenHelper { public MyDBHelper(Context context, String name, CursorFactory factory, int version) { super(context, "db", null, 2); } @Override public void onCreate(SQLiteDatabase db) { db.execSQL("create table if not exists user_info (_id integer primary key autoincrement, name text, age text)"); } @Override public void onUpgrade(SQLiteDatabase db, int oldVersion, int newVersion) { // 数据库升级逻辑 if (newVersion > oldVersion) { db.execSQL("drop table if exists user_info"); db.execSQL("create table user_info (_id integer primary key autoincrement, name text, age text)"); } }} MyDBHelper创建数据库并检查表是否存在。onCreate方法中自动加载用户数据。通过以上代码和设计,我们成功实现了一个简单的用户信息管理系统,能够进行数据的添加、查询和清空操作。整个开发过程注重代码的简洁性和可读性,确保了数据库操作的高效性和用户体验的良好。
转载地址:http://nwmr.baihongyu.com/