下面通过一个完整的实例来展示如何进行数据库操作。由于实例中使用的方法在上一篇博文中都已经讲述过,因此不再对具体的方法进行分析,主要通过完整的实例让读者有一个宏观的认知实例将通过创建 100条模拟数据,用ListView 展示出来,同时在ListView中对数据进行删除和更新操作。最后演示如何进行数据库版本更新的操作。
在进行具体的数据库操作之前,先建立一个Java 实体类 User类,再通过这个实体类进行数据的封装。User类中包括 userId、name、age三个属性,具体代码如下∶
package com.rfstar.sqlitetest2;
public class User {
private int userId;
private String name;
private int age;
public int getUserId()
{
return userId;
}
public void setUserId(int userId)
{
this.userId=userId;
}
public String getName()
{
return name;
}
public void setName(String name)
{
this.name=name;
}
public int getAge()
{
return age;
}
public void setAge(int age)
{
this.age=age;
}
}
完成Java实体类的创建之后,通过继承SQLiteOpenHelper来实现数据库辅助类,并实现其中的onCeate()方法和onUpgrate()方法。在onCreate()方法中创建表并使表中的字段与User类的属性相一致。同时实现onUpgrate()方法,以更新数据库。
package com.rfstar.sqlitetest2;
import android.content.Context;
import android.database.sqlite.SQLiteDatabase;
import android.database.sqlite.SQLiteOpenHelper;
public class OpenHelper extends SQLiteOpenHelper {
private static final String name="test.db";
private static final int version=1;
public OpenHelper(Context context)
{
super(context,name,null,version);
}
@Override
public void onCreate(SQLiteDatabase sqLiteDatabase) {
sqLiteDatabase.execSQL("CREATE TABLE IF NOT EXISTS "+
"user (person_id INTEGER PRIMARY KEY AUTOINCREMENT,"+
"name varchar(32),age INTEGER)");
}
@Override
public void onUpgrade(SQLiteDatabase sqLiteDatabase, int oldVersion, int newVersion) {
if(newVersion>oldVersion)
{
sqLiteDatabase.execSQL("ALTER TABLE user ADD phone VARCHAR(11)");
}
}
}
接下来创建UserDao类,并在该类中实现对User的增、删、改、查操作,代码如下:
package com.rfstar.sqlitetest2;
import android.content.ContentValues;
import android.content.Context;
import android.database.Cursor;
impo