android sqlite3
时间: 2023-08-31 10:12:48 浏览: 51
Android提供了SQLite数据库的支持,可以使用SQLiteOpenHelper类来管理SQLite数据库。SQLiteOpenHelper类有两个重要的方法:onCreate()和onUpgrade()。onCreate()方法用于创建数据库,onUpgrade()方法用于更新数据库。以下是一个简单的示例:
```java
public class DatabaseHelper 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";
private static final String CREATE_TABLE = "CREATE TABLE " + TABLE_NAME + " (" +
COLUMN_ID + " INTEGER PRIMARY KEY AUTOINCREMENT, " +
COLUMN_NAME + " TEXT, " +
COLUMN_AGE + " INTEGER)";
public DatabaseHelper(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);
}
}
```
在上面的示例中,我们创建了一个名为“mydatabase.db”的数据库,其中包含一个名为“mytable”的表。表中包含三个列:_id、name和age。
在onCreate()方法中,我们使用db.execSQL()方法创建了一个名为“mytable”的表。
在onUpgrade()方法中,我们使用db.execSQL()方法删除了名为“mytable”的表,并再次调用onCreate()方法创建新的表。
使用SQLiteOpenHelper类创建数据库后,您可以使用以下代码来执行SQL查询:
```java
DatabaseHelper dbHelper = new DatabaseHelper(context);
SQLiteDatabase db = dbHelper.getWritableDatabase();
// 插入数据
ContentValues values = new ContentValues();
values.put(DatabaseHelper.COLUMN_NAME, "Tom");
values.put(DatabaseHelper.COLUMN_AGE, 25);
long newRowId = db.insert(DatabaseHelper.TABLE_NAME, null, values);
// 查询数据
String[] projection = {
DatabaseHelper.COLUMN_ID,
DatabaseHelper.COLUMN_NAME,
DatabaseHelper.COLUMN_AGE
};
String selection = DatabaseHelper.COLUMN_NAME + " = ?";
String[] selectionArgs = { "Tom" };
String sortOrder = DatabaseHelper.COLUMN_AGE + " DESC";
Cursor cursor = db.query(
DatabaseHelper.TABLE_NAME, // 要查询的表名
projection, // 要返回的列
selection, // WHERE子句
selectionArgs, // WHERE子句中的占位符
null, // GROUP BY子句
null, // HAVING子句
sortOrder // ORDER BY子句
);
// 更新数据
ContentValues values = new ContentValues();
values.put(DatabaseHelper.COLUMN_AGE, 26);
String selection = DatabaseHelper.COLUMN_NAME + " LIKE ?";
String[] selectionArgs = { "Tom" };
int count = db.update(
DatabaseHelper.TABLE_NAME,
values,
selection,
selectionArgs);
// 删除数据
String selection = DatabaseHelper.COLUMN_NAME + " LIKE ?";
String[] selectionArgs = { "Tom" };
int deletedRows = db.delete(DatabaseHelper.TABLE_NAME, selection, selectionArgs);
```
在上面的示例中,我们使用db.insert()方法插入数据,db.query()方法查询数据,db.update()方法更新数据和db.delete()方法删除数据。注意,这些方法都需要一个表名参数和一个ContentValues对象或一个WHERE子句和一个占位符数组。