GreenDao3.0+的配置使用以及数据库升级

GreenDao是Android中用来处理数据库操作的一个比较好用的ORM框架,使用它可以简化数据库操作的代码,这里记录一下AndroidStudio中使用GreenDao的方式:

(1)配置Greendao插件引入GreenDao的jar包

app目录下的build.gradle文件中添加配置

apply plugin: 'org.greenrobot.greendao'
dependencies {
    compile 'org.greenrobot:greendao:3.1.1'
}
工程目录下的build.gradle文件中添加配置
buildscript { repositories { jcenter() } dependencies { classpath 'com.android.tools.build:gradle:2.1.2'  classpath 'org.greenrobot:greendao-gradle-plugin:3.1.1'  } }
(2)配置DaoMaster,DaoSession和DAOS的生成目录
在app目录下的build.gradle文件中android节点下添加如下配置
greendao{
    schemaVersion 1    //数据库版本号,进行数据库升级时使用
    daoPackage 'com.thunisoft.zxlz.dao.bean'
    targetGenDir 'src/main/java'
}
(3)编写数据库中表对应的实体bean,生成对应的DaoMaster,DaoSession和DAOS。例如:
假设我们需要建一个表用来记录"笔记",我们可以创建这样一个java类
<span style="color:#000000;">package com.thunisoft.zxlz.dao.bean;

import org.greenrobot.greendao.annotation.Entity;
import org.greenrobot.greendao.annotation.Id;
import org.greenrobot.greendao.annotation.Property;

import java.util.Date;
import org.greenrobot.greendao.annotation.Generated;

/**
 * Created by Administrator on 2016-10-10.
 */
@Entity
public class Note {
    @Id
    private String bh;
    @Property(nameInDb = "bt")
    private String bt;
    @Property(nameInDb = "nr")
    private String nr;
    @Property(nameInDb = "bxsj")
    private Date bxsj;
}</span>
@Id 是指定表的主键。
@Property(nameInDb = "bt") 是指定在表中的字段名就是bt。

点击Android studio开发工具中菜单栏Build下的Make Project就会在你之前(2)指定的目录下生成DaoMaster,DaoSession和DAOS,如下图:

(4)在Application中进行初始化操作

<span style="color:#000000;">package com.thunisoft.zxlz;

import android.app.Application;
import android.database.sqlite.SQLiteDatabase;

import com.xmg.zxlz.dao.DaoMaster;
import com.xmg.zxlz.dao.DaoSession;

/**
 * Created by Administrator on 2016-10-10.
 */
public class MyApplication  extends Application{
    private DaoSession daoSession;
    @Override
    public void onCreate() {
        super.onCreate();
        initDataBase();
    }
    private void initDataBase() {
        DaoMaster.DevOpenHelper devOpenHelper=new DaoMaster.DevOpenHelper(this,"test-db");
        SQLiteDatabase db=devOpenHelper.getWritableDatabase();
        daoSession=new DaoMaster(db).newSession();
    }
    public DaoSession getDaoSession() {
        return daoSession;
    }
}</span>

初始化操作如果我们要使用就可以通过获取Application对象来获取到Daosession以获取到具体某个表的dao来对这个表进行增删改查操作

<span style="color:#000000;">private void test(){
    NoteDao noteDao=((MyApplication)getApplication()).getDaoSession().getNoteDao();
    Note note=new Note();
    note.setBh("1323432");
    noteDao.insert(note);</span>
<span style="color:#000000;">}</span>

(5)GreenDao数据库升级,在大多数情况下随着业务的变化,我们之前所创建的表可能也需要改变(比如添加一个字段啥的),这时我们需要考虑到旧数据如何保留的问题。

GreenDao在默认情况下的数据库升级是会将原来的表销毁重新创建的,这在DaoMaster类中的DevOpenHelper中的源码可以看到

<span style="color:#000000;">/** WARNING: Drops all table on Upgrade! Use only during development. */
    public static class DevOpenHelper extends OpenHelper {
        public DevOpenHelper(Context context, String name) {
            super(context, name);
        }

        public DevOpenHelper(Context context, String name, CursorFactory factory) {
            super(context, name, factory);
        }

        @Override
        public void onUpgrade(Database db, int oldVersion, int newVersion) {
            Log.i("greenDAO", "Upgrading schema from version " + oldVersion + " to " + newVersion + " by dropping all tables");
            dropAllTables(db, true);
            onCreate(db);
        }
    }</span>

所以在做数据库升级的时候我们需要修改这部分代码,我们需要做两件事情

a.修改app目录下的build.gradle文件中greendao节点下的schemaVersion加1,重新Build——>Make Project.

b.修改DevOpenHelper中的数据库升级到逻辑代码:创建临时表;将原表中的数据拷贝到临时表;删除原表,将临时表的表名修改为原表的表名。(你可以写个utils啥的,在onUpgrade方法中调用。)

 

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
### 回答1: 要使用SQLitestudio打开GreenDAO加密数据库,需要按照以下步骤进行: 1. 首先,确保你已经安装了SQLitestudio,可以从官方网站下载并安装。 2. 打开SQLitestudio并点击"文件"菜单,选择"打开数据库"选项。 3. 在打开的对话框中,浏览文件系统并选择你要打开的GreenDAO加密数据库文件,然后点击"打开"按钮。 4. 在"解密数据库"对话框中,输入你设置的GreenDAO数据库的加密密码,并确保"使用GreenDAO加密"选项被选中。 5. 点击"确定"按钮,SQLitestudio会尝试用你提供的密码解密数据库文件。 6. 如果密码正确,数据库将被成功解密并显示在SQLitestudio的主窗口中。 7. 现在你可以对数据库进行各种操作了,比如查看表结构、查询数据等。 需要注意的是,SQLitestudio虽然可以打开和操作GreenDAO加密数据库,但它并不直接支持GreenDAO的特定功能,比如自动生成的实体类和数据访问对象(DAO)。如果你需要使用这些功能,建议使用GreenDAO提供的自动生成工具和API来操作数据库。 ### 回答2: 要使用SqliteStudio打开GreenDAO加密数据库,需要按照以下步骤进行操作: 1. 首先,下载并安装SqliteStudio软件,确保已经在计算机上正确安装并启动。 2. 打开SqliteStudio,点击菜单栏中的“数据库”选项,选择“连接到数据库”。 3. 在弹出的对话框中,选择“SQLite”作为数据库类型,然后点击“继续”。 4. 在“数据库文件”字段中,浏览到保存加密数据库的文件路径,并选择要打开的GreenDAO加密数据库文件。 5. 在“密码”字段中,输入用于加密数据库的密码。确保密码与原始数据库加密方式一致,否则无法正确打开。 6. 在“配置文件”字段中,选择相应的配置文件,如果没有则选择“默认配置”。 7. 点击“测试连接”按钮,确保连接设置正确,如果测试通过则点击“连接”。 8. 等待一段时间,SqliteStudio将连接到GreenDAO加密数据库,并在左侧的导航栏中显示数据库的表和视图。 9. 现在,可以浏览和编辑数据库中的表和数据,执行自定义的SQL查询等操作。 10. 在使用完毕后,记得点击SqliteStudio菜单栏中的“断开连接”选项,以确保数据库的同步和安全关闭。 总结:通过以上步骤,我们就可以使用SqliteStudio打开GreenDAO加密数据库。请注意,这些步骤仅适用于已加密的GreenDAO数据库,如果数据库没有加密或使用其他加密方式,则无法通过这种方式打开。 ### 回答3: 要使用SQLiteStudio打开GreenDao加密的数据库,需要按照以下步骤操作: 1. 确保已经安装并启动SQLiteStudio软件。 2. 打开SQLiteStudio软件后,点击菜单栏中的“文件”,选择“打开数据库”选项。 3. 在弹出的对话框中,选择要打开的加密数据库文件,点击“打开”。 4. 然后,弹出的对话框会要求输入数据库密码。输入正确的密码,点击“确定”。 5. 如果密码正确,SQLiteStudio将会打开该加密数据库,并显示其中的表格和数据。 注意事项: - 确保输入的密码正确,否则将无法打开加密数据库。 - 如果忘记了数据库密码,无法使用SQLiteStudio直接打开数据库,除非通过其他方式找回密码或者重新创建一个未加密的数据库。 希望以上步骤能对您有所帮助!
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值