通过SQLiteOpenHelper助手类实现对book_db数据库中Book表的访问
时间: 2023-06-19 11:09:05 浏览: 100
SQLiteOpenHelper
首先,需要创建一个继承自SQLiteOpenHelper的助手类,例如:
```java
public class BookDBHelper extends SQLiteOpenHelper {
private static final int DATABASE_VERSION = 1;
private static final String DATABASE_NAME = "book_db";
public BookDBHelper(Context context) {
super(context, DATABASE_NAME, null, DATABASE_VERSION);
}
@Override
public void onCreate(SQLiteDatabase db) {
String CREATE_BOOK_TABLE = "CREATE TABLE Book ("
+ "id INTEGER PRIMARY KEY,"
+ "title TEXT,"
+ "author TEXT,"
+ "price REAL)";
db.execSQL(CREATE_BOOK_TABLE);
}
@Override
public void onUpgrade(SQLiteDatabase db, int oldVersion, int newVersion) {
db.execSQL("DROP TABLE IF EXISTS Book");
onCreate(db);
}
}
```
在助手类中,我们定义了数据库的名称和版本号,并实现了onCreate()和onUpgrade()方法。
onCreate()方法在第一次创建数据库时被调用,这里我们创建了一个名为Book的表,包含id、title、author和price四个字段。
onUpgrade()方法在数据库版本更新时被调用,这里我们删除了原来的Book表,并重新创建了一个新的表。
接下来,我们可以在应用程序中使用这个助手类来访问数据库。例如,我们可以在Activity中实现以下代码:
```java
public class MainActivity extends AppCompatActivity {
private SQLiteDatabase db;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
BookDBHelper dbHelper = new BookDBHelper(this);
db = dbHelper.getWritableDatabase();
// 插入数据
ContentValues values = new ContentValues();
values.put("title", "Android开发教程");
values.put("author", "张三");
values.put("price", 88.8);
db.insert("Book", null, values);
// 查询数据
Cursor cursor = db.query("Book", null, null, null, null, null, null);
if (cursor.moveToFirst()) {
do {
int id = cursor.getInt(cursor.getColumnIndex("id"));
String title = cursor.getString(cursor.getColumnIndex("title"));
String author = cursor.getString(cursor.getColumnIndex("author"));
double price = cursor.getDouble(cursor.getColumnIndex("price"));
Log.d("MainActivity", "id: " + id + ", title: " + title + ", author: "
+ author + ", price: " + price);
} while (cursor.moveToNext());
}
cursor.close();
}
@Override
protected void onDestroy() {
super.onDestroy();
db.close();
}
}
```
在这个例子中,我们创建了一个BookDBHelper对象,并从中获取了可写的数据库实例db。然后,我们使用ContentValues对象向Book表中插入了一条数据。
接下来,我们使用db.query()方法查询了Book表中的所有数据,并打印了查询结果。
最后,记得在Activity销毁时关闭数据库。
阅读全文