您的位置:首页 > 移动开发 > Android开发

GreenDao 在 Android Studio 中的配置使用 之 更新数据库

2016-04-23 11:34 429 查看
前面介绍了GreenDao的搭建配置。

这篇介绍一下如何简单实用。

更新数据库

greendao默认的更新数据库方法是,删除原来的所有表,再创建所有表,这样做的好处是省时省力,坏处是神经病啊,我数据丢了啊!

这是自动生成的DaoMaster代码片段,用来更新和创建数据库的:

```
public static class DevOpenHelper extends OpenHelper {
public DevOpenHelper(Context context, String name, CursorFactory factory) {
super(context, name, factory);
}

@Override
public void onUpgrade(SQLiteDatabase db, int oldVersion, int newVersion) {
Log.i("greenDAO", "Upgrading schema from version " + oldVersion + " to " + newVersion + " by dropping all tables");
//看这里~~~~~~
dropAllTables(db, true);
onCreate(db);
}
}
```


所以,需要自定义一个OpenHelper类

```
public class MyOpenHelper extends DaoMaster.OpenHelper {

public MyOpenHelper(Context context, String name, SQLiteDatabase.CursorFactory factory) {
super(context, name, factory);
}

/**
* 更新数据库
* @param db
* @param oldVersion
* @param newVersion
*/
@Override
public void onUpgrade(SQLiteDatabase db, int oldVersion, int newVersion) {
switch (oldVersion){
case 1:
break;
}
}
}

```


创建数据库的时候酱紫写

```
public class MyDatabaseLoader {

//数据库名称
private static final String DATABASE_NAME = "Test-db";
//用来获取Dao的
private static DaoSession daoSession;

/**
* 在Application中调用,初始化数据库
* @param context
*/
public static void init(Context context) {
//使用自定义的OpenHelper的到SQLiteDatabase
MyOpenHelper helper = new MyOpenHelper(context, DATABASE_NAME, null);
SQLiteDatabase db = helper.getWritableDatabase();
DaoMaster daoMaster = new DaoMaster(db);
daoSession = daoMaster.newSession();
}

public static DaoSession getDaoSession() {
return daoSession;
}
}
```


更改数据库版本

```
//第一个参数是版本号,只要更改,并重新生成dao就行了。
Schema schema = new Schema(2, "com.test.greendao");
```


在Application中创建数据库

```
public class MyApplication extends Application {

@Override
public void onCreate() {
super.onCreate();

//创建数据库
MyDatabaseLoader.init(this);
}
}

```
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: