GreenDao 在 Android Studio 中的配置使用 之 更新数据库
2016-04-23 11:34
429 查看
前面介绍了GreenDao的搭建配置。
这篇介绍一下如何简单实用。
这是自动生成的DaoMaster代码片段,用来更新和创建数据库的:
这篇介绍一下如何简单实用。
更新数据库
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); } } ```
相关文章推荐
- 《Android JNI》02 对java传进来的整形参数进行操作并返回
- Android布局优化之include、merge、ViewStub的使用
- 关于Android SD卡
- Android前端人员与后台开发的撕逼(一)
- android 6.0权限管理
- Android学习笔记(Google官方教程)(六)
- Android学习笔记(Google官方教程)(五)
- Android学习笔记(Google官方教程)(四)
- Android Studio下载
- Android开发中adb启动失败adb连接异常的解决办法
- 聊聊Android的缓存(二)
- android studio 多渠道打包
- 实例解析Android系统中的ContentProvider组件用法
- Android应用的界面编程(一)
- Android之Notification的多种用法
- Android SDK Manager无法下载问题
- android 6.0权限动态申请
- Android——indexof()
- Android——简易计算器(转)
- Android——计算器第一次完善