android用sqllite数据库实现古诗的增、删、改、查,写一个完整的简单示例,写清文件名和步骤
时间: 2023-11-22 17:54:02 浏览: 81
好的,下面是一个简单的示例:
1. 创建SQLiteOpenHelper类
首先,需要创建一个继承自SQLiteOpenHelper的类,用于创建和管理数据库。在该类中,需要定义数据库的名称、版本号以及创建数据库表的SQL语句。
```java
public class PoetryDBHelper extends SQLiteOpenHelper {
private static final String DATABASE_NAME = "poetry.db";
private static final int DATABASE_VERSION = 1;
// 创建诗歌表的SQL语句
private static final String CREATE_TABLE_POETRY = "CREATE TABLE poetry (" +
"id INTEGER PRIMARY KEY AUTOINCREMENT," +
"title TEXT," +
"author TEXT," +
"content TEXT)";
public PoetryDBHelper(Context context) {
super(context, DATABASE_NAME, null, DATABASE_VERSION);
}
@Override
public void onCreate(SQLiteDatabase db) {
// 创建诗歌表
db.execSQL(CREATE_TABLE_POETRY);
}
@Override
public void onUpgrade(SQLiteDatabase db, int oldVersion, int newVersion) {
// 数据库升级时,可以执行一些数据迁移操作
}
}
```
2. 插入数据
插入数据需要先获取一个可写的数据库实例,然后使用 ContentValues 对象来封装要插入的数据。
```java
public void insertPoetry(String title, String author, String content) {
SQLiteDatabase db = getWritableDatabase();
ContentValues values = new ContentValues();
values.put("title", title);
values.put("author", author);
values.put("content", content);
db.insert("poetry", null, values);
db.close();
}
```
3. 查询数据
查询数据需要先获取一个只读的数据库实例,然后使用 Cursor 对象来查询数据。查询结果可以通过 Cursor 对象逐行遍历得到。
```java
public List<Poetry> queryAll() {
List<Poetry> list = new ArrayList<>();
SQLiteDatabase db = getReadableDatabase();
Cursor cursor = db.query("poetry", null, null, null, null, null, null);
if (cursor.moveToFirst()) {
do {
Poetry poetry = new Poetry();
poetry.setId(cursor.getInt(cursor.getColumnIndex("id")));
poetry.setTitle(cursor.getString(cursor.getColumnIndex("title")));
poetry.setAuthor(cursor.getString(cursor.getColumnIndex("author")));
poetry.setContent(cursor.getString(cursor.getColumnIndex("content")));
list.add(poetry);
} while (cursor.moveToNext());
}
cursor.close();
db.close();
return list;
}
```
4. 更新数据
更新数据需要先获取一个可写的数据库实例,然后使用 ContentValues 对象来封装要更新的数据,再使用 update 方法进行更新。
```java
public void updatePoetry(int id, String title, String author, String content) {
SQLiteDatabase db = getWritableDatabase();
ContentValues values = new ContentValues();
values.put("title", title);
values.put("author", author);
values.put("content", content);
db.update("poetry", values, "id=?", new String[] {String.valueOf(id)});
db.close();
}
```
5. 删除数据
删除数据需要先获取一个可写的数据库实例,然后使用 delete 方法进行删除。
```java
public void deletePoetry(int id) {
SQLiteDatabase db = getWritableDatabase();
db.delete("poetry", "id=?", new String[] {String.valueOf(id)});
db.close();
}
```
6. 使用示例
```java
public class MainActivity extends AppCompatActivity {
private PoetryDBHelper dbHelper;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
dbHelper = new PoetryDBHelper(this);
// 插入数据
dbHelper.insertPoetry("静夜思", "李白", "床前明月光,疑是地上霜。举头望明月,低头思故乡。");
// 查询数据
List<Poetry> list = dbHelper.queryAll();
for (Poetry poetry : list) {
Log.d("MainActivity", poetry.getTitle() + " " + poetry.getAuthor() + " " + poetry.getContent());
}
// 更新数据
dbHelper.updatePoetry(1, "静夜思(改)", "李白", "床前明月光,疑是地上霜。举头望明月,低头思故土。");
// 删除数据
dbHelper.deletePoetry(1);
}
@Override
protected void onDestroy() {
super.onDestroy();
dbHelper.close();
}
}
```
以上就是一个简单的使用SQLite实现增删改查的示例。文件名称为 PoetryDBHelper.java。
阅读全文