基于android实现SQLiteOpenHelper的继承类MyHelper,创建数据表user,字段包括自增id、username、password等三个字段,并插入三条记录。 在MainActivity类中实现对数据库增删改查操作,并在用查询或者命令行的方法观察数据库的变化。
时间: 2024-03-23 16:40:02 浏览: 130
好的,我会尽力回答你的问题。首先,我们来看一下如何创建一个继承自SQLiteOpenHelper的MyHelper类。
```java
public class MyHelper extends SQLiteOpenHelper {
private static final String DATABASE_NAME = "mydatabase.db";
private static final int DATABASE_VERSION = 1;
private static final String TABLE_NAME = "user";
private static final String ID = "_id";
private static final String USERNAME = "username";
private static final String PASSWORD = "password";
public MyHelper(Context context) {
super(context, DATABASE_NAME, null, DATABASE_VERSION);
}
@Override
public void onCreate(SQLiteDatabase db) {
String sql = "CREATE TABLE " + TABLE_NAME + "("
+ ID + " INTEGER PRIMARY KEY AUTOINCREMENT,"
+ USERNAME + " TEXT,"
+ PASSWORD + " TEXT)";
db.execSQL(sql);
// 插入三条记录
ContentValues values = new ContentValues();
values.put(USERNAME, "user1");
values.put(PASSWORD, "123456");
db.insert(TABLE_NAME, null, values);
values.put(USERNAME, "user2");
values.put(PASSWORD, "abcdef");
db.insert(TABLE_NAME, null, values);
values.put(USERNAME, "user3");
values.put(PASSWORD, "888888");
db.insert(TABLE_NAME, null, values);
}
@Override
public void onUpgrade(SQLiteDatabase db, int oldVersion, int newVersion) {
String sql = "DROP TABLE IF EXISTS " + TABLE_NAME;
db.execSQL(sql);
onCreate(db);
}
}
```
在MyHelper类中,我们定义了数据库名称、版本号、表名称、字段名称,然后在onCreate方法中创建了user表,并插入了三条记录。
接下来,我们可以在MainActivity中进行数据库操作。这里提供一些常用的操作方法供参考。
```java
public class MainActivity extends AppCompatActivity {
private SQLiteDatabase db;
private MyHelper helper;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
// 创建或打开数据库
helper = new MyHelper(this);
db = helper.getWritableDatabase();
// 插入数据
insertData("user4", "999999");
// 查询数据
queryData();
// 修改数据
updateData("user1", "111111");
// 删除数据
deleteData("user2");
// 查询数据
queryData();
// 关闭数据库
db.close();
}
private void insertData(String username, String password) {
ContentValues values = new ContentValues();
values.put(MyHelper.USERNAME, username);
values.put(MyHelper.PASSWORD, password);
db.insert(MyHelper.TABLE_NAME, null, values);
}
private void queryData() {
Cursor cursor = db.query(MyHelper.TABLE_NAME, null, null, null, null, null, null);
while (cursor.moveToNext()) {
int id = cursor.getInt(cursor.getColumnIndex(MyHelper.ID));
String username = cursor.getString(cursor.getColumnIndex(MyHelper.USERNAME));
String password = cursor.getString(cursor.getColumnIndex(MyHelper.PASSWORD));
Log.d("MainActivity", "id: " + id + ", username: " + username + ", password: " + password);
}
cursor.close();
}
private void updateData(String username, String password) {
ContentValues values = new ContentValues();
values.put(MyHelper.PASSWORD, password);
db.update(MyHelper.TABLE_NAME, values, MyHelper.USERNAME + "=?", new String[]{username});
}
private void deleteData(String username) {
db.delete(MyHelper.TABLE_NAME, MyHelper.USERNAME + "=?", new String[]{username});
}
}
```
在MainActivity中,我们首先创建或打开数据库,然后插入一条记录,查询数据,修改数据,删除数据,再次查询数据,最后关闭数据库。
这里需要注意的是,所有的操作都应该在事务中进行,以确保数据的一致性和完整性。另外,我们可以使用adb shell命令来查看数据库的变化,具体命令如下:
```shell
adb shell
$ run-as com.example.myapplication
$ cd databases
$ ls
$ sqlite3 mydatabase.db
sqlite> .table
sqlite> select * from user;
sqlite> .exit
```
以上就是基于android实现SQLiteOpenHelper的继承类MyHelper,创建数据表user,字段包括自增id、username、password等三个字段,并插入三条记录,并在MainActivity类中实现对数据库增删改查操作,并在用查询或者命令行的方法观察数据库的变化的方法。
阅读全文