Android利用上一题所建立的数据库和staff表,为程序提供添加、删除和更新等功能,并尝试将下表中的数据添加到staff表中
时间: 2024-02-09 16:11:34 浏览: 33
好的,根据您的要求,我可以为您提供一个简单的 Android 应用程序来实现添加、删除和更新 staff 表的功能,并将下表中的数据添加到 staff 表中。以下是一个示例程序,可以供您参考:
1. 首先,我们需要在 Android 项目中添加 SQLite 数据库的支持。在 build.gradle 文件中添加以下依赖项:
```groovy
dependencies {
implementation 'androidx.sqlite:sqlite:2.1.0'
}
```
2. 接着,我们创建一个 Staff 类来表示 staff 表中的数据:
```java
public class Staff {
private int id;
private String name;
private int age;
private String address;
private double salary;
public Staff(int id, String name, int age, String address, double salary) {
this.id = id;
this.name = name;
this.age = age;
this.address = address;
this.salary = salary;
}
public int getId() {
return id;
}
public String getName() {
return name;
}
public int getAge() {
return age;
}
public String getAddress() {
return address;
}
public double getSalary() {
return salary;
}
}
```
3. 然后,我们创建一个 DBHelper 类来管理数据库和 staff 表。在该类中,我们定义了一些常量来表示数据库和 staff 表的名称、列名等。在构造函数中,我们创建了一个 SQLiteDatabase 实例,用于执行 SQL 命令。接着,我们实现了一些方法来添加、删除和更新 staff 表中的数据:
```java
public class DBHelper extends SQLiteOpenHelper {
private static final String DB_NAME = "staff.db";
private static final int DB_VERSION = 1;
private static final String TABLE_NAME = "staff";
private static final String COLUMN_ID = "id";
private static final String COLUMN_NAME = "name";
private static final String COLUMN_AGE = "age";
private static final String COLUMN_ADDRESS = "address";
private static final String COLUMN_SALARY = "salary";
public DBHelper(Context context) {
super(context, DB_NAME, null, DB_VERSION);
}
@Override
public void onCreate(SQLiteDatabase db) {
String sql = "CREATE TABLE " + TABLE_NAME + " ("
+ COLUMN_ID + " INTEGER PRIMARY KEY,"
+ COLUMN_NAME + " TEXT,"
+ COLUMN_AGE + " INTEGER,"
+ COLUMN_ADDRESS + " TEXT,"
+ COLUMN_SALARY + " REAL)";
db.execSQL(sql);
}
@Override
public void onUpgrade(SQLiteDatabase db, int oldVersion, int newVersion) {
String sql = "DROP TABLE IF EXISTS " + TABLE_NAME;
db.execSQL(sql);
onCreate(db);
}
public void addStaff(Staff staff) {
SQLiteDatabase db = getWritableDatabase();
ContentValues values = new ContentValues();
values.put(COLUMN_ID, staff.getId());
values.put(COLUMN_NAME, staff.getName());
values.put(COLUMN_AGE, staff.getAge());
values.put(COLUMN_ADDRESS, staff.getAddress());
values.put(COLUMN_SALARY, staff.getSalary());
db.insert(TABLE_NAME, null, values);
db.close();
}
public void updateStaff(Staff staff) {
SQLiteDatabase db = getWritableDatabase();
ContentValues values = new ContentValues();
values.put(COLUMN_NAME, staff.getName());
values.put(COLUMN_AGE, staff.getAge());
values.put(COLUMN_ADDRESS, staff.getAddress());
values.put(COLUMN_SALARY, staff.getSalary());
db.update(TABLE_NAME, values, COLUMN_ID + " = ?", new String[]{String.valueOf(staff.getId())});
db.close();
}
public void deleteStaff(int id) {
SQLiteDatabase db = getWritableDatabase();
db.delete(TABLE_NAME, COLUMN_ID + " = ?", new String[]{String.valueOf(id)});
db.close();
}
}
```
4. 最后,我们在 MainActivity 类中使用 DBHelper 类来添加、删除和更新 staff 表中的数据,并显示 staff 表中的所有数据:
```java
public class MainActivity extends AppCompatActivity {
private DBHelper dbHelper;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
// 创建 DBHelper 实例
dbHelper = new DBHelper(this);
// 添加数据到 staff 表
dbHelper.addStaff(new Staff(1, "John Doe", 28, "123 Main St.", 50000.00));
dbHelper.addStaff(new Staff(2, "Jane Smith", 35, "456 Elm St.", 75000.00));
dbHelper.addStaff(new Staff(3, "Bob Johnson", 42, "789 Oak St.", 100000.00));
dbHelper.addStaff(new Staff(4, "Tom Lee", 30, "111 Cherry St.", 60000.00));
dbHelper.addStaff(new Staff(5, "Lucy Chen", 25, "222 Maple St.", 45000.00));
dbHelper.addStaff(new Staff(6, "David Wang", 38, "333 Pine St.", 85000.00));
// 更新 staff 表中的数据
dbHelper.updateStaff(new Staff(2, "Jane Smith", 35, "567 Walnut St.", 80000.00));
// 删除 staff 表中的数据
dbHelper.deleteStaff(3);
// 显示 staff 表中的所有数据
List<Staff> staffList = getAllStaff();
for (Staff staff : staffList) {
Log.d("MainActivity", "ID = " + staff.getId());
Log.d("MainActivity", "NAME = " + staff.getName());
Log.d("MainActivity", "AGE = " + staff.getAge());
Log.d("MainActivity", "ADDRESS = " + staff.getAddress());
Log.d("MainActivity", "SALARY = " + staff.getSalary() + "\n");
}
}
private List<Staff> getAllStaff() {
List<Staff> staffList = new ArrayList<>();
SQLiteDatabase db = dbHelper.getReadableDatabase();
Cursor cursor = db.rawQuery("SELECT * FROM " + DBHelper.TABLE_NAME, null);
if (cursor.moveToFirst()) {
do {
int id = cursor.getInt(cursor.getColumnIndex(DBHelper.COLUMN_ID));
String name = cursor.getString(cursor.getColumnIndex(DBHelper.COLUMN_NAME));
int age = cursor.getInt(cursor.getColumnIndex(DBHelper.COLUMN_AGE));
String address = cursor.getString(cursor.getColumnIndex(DBHelper.COLUMN_ADDRESS));
double salary = cursor.getDouble(cursor.getColumnIndex(DBHelper.COLUMN_SALARY));
Staff staff = new Staff(id, name, age, address, salary);
staffList.add(staff);
} while (cursor.moveToNext());
}
cursor.close();
db.close();
return staffList;
}
}
```
在上面的程序中,我们首先创建了 DBHelper 实例,并使用 addStaff() 方法向 staff 表中添加了一些数据。接着,我们使用 updateStaff() 方法更新了 staff 表中 ID 为 2 的数据,并使用 deleteStaff() 方法删除了 ID 为 3 的数据。最后,我们使用 getAllStaff() 方法查询并显示了 staff 表中的所有数据。
希望这个示例程序对您有所帮助。