帮我写MyDbHelper
时间: 2024-05-07 11:21:21 浏览: 8
MyDbHelper是一个用于管理SQLite数据库的类,包括创建数据库、创建表、插入数据、更新数据、查询数据等操作。以下是一个简单的MyDbHelper类示例:
```java
public class MyDbHelper extends SQLiteOpenHelper {
private static final String DATABASE_NAME = "mydatabase.db";
private static final int DATABASE_VERSION = 1;
// 定义表名、列名等
private static final String TABLE_NAME = "mytable";
private static final String COLUMN_ID = "id";
private static final String COLUMN_NAME = "name";
private static final String COLUMN_AGE = "age";
// 创建表的SQL语句
private static final String CREATE_TABLE =
"CREATE TABLE " + TABLE_NAME + " (" +
COLUMN_ID + " INTEGER PRIMARY KEY AUTOINCREMENT," +
COLUMN_NAME + " TEXT," +
COLUMN_AGE + " INTEGER)";
public MyDbHelper(Context context) {
super(context, DATABASE_NAME, null, DATABASE_VERSION);
}
@Override
public void onCreate(SQLiteDatabase db) {
// 创建表
db.execSQL(CREATE_TABLE);
}
@Override
public void onUpgrade(SQLiteDatabase db, int oldVersion, int newVersion) {
// 升级数据库
db.execSQL("DROP TABLE IF EXISTS " + TABLE_NAME);
onCreate(db);
}
// 插入数据
public long insertData(String name, int age) {
SQLiteDatabase db = getWritableDatabase();
ContentValues values = new ContentValues();
values.put(COLUMN_NAME, name);
values.put(COLUMN_AGE, age);
long id = db.insert(TABLE_NAME, null, values);
db.close();
return id;
}
// 更新数据
public int updateData(int id, String name, int age) {
SQLiteDatabase db = getWritableDatabase();
ContentValues values = new ContentValues();
values.put(COLUMN_NAME, name);
values.put(COLUMN_AGE, age);
int rows = db.update(TABLE_NAME, values, COLUMN_ID + "=?", new String[] {String.valueOf(id)});
db.close();
return rows;
}
// 查询数据
public Cursor queryData() {
SQLiteDatabase db = getReadableDatabase();
Cursor cursor = db.rawQuery("SELECT * FROM " + TABLE_NAME, null);
return cursor;
}
}
```
使用示例:
```java
// 创建数据库
MyDbHelper dbHelper = new MyDbHelper(context);
SQLiteDatabase db = dbHelper.getWritableDatabase();
// 插入数据
long id = dbHelper.insertData("张三", 20);
// 更新数据
int rows = dbHelper.updateData(1, "李四", 25);
// 查询数据
Cursor cursor = dbHelper.queryData();
while (cursor.moveToNext()) {
int id = cursor.getInt(cursor.getColumnIndex(MyDbHelper.COLUMN_ID));
String name = cursor.getString(cursor.getColumnIndex(MyDbHelper.COLUMN_NAME));
int age = cursor.getInt(cursor.getColumnIndex(MyDbHelper.COLUMN_AGE));
Log.d(TAG, "id: " + id + ", name: " + name + ", age: " + age);
}
// 关闭数据库
cursor.close();
db.close();
```