欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

GreenDao的简单使用

程序员文章站 2022-03-20 14:50:32
...

(一)

整个项目的gradle中的dependencies中添加代码,如下:

dependencies {
        classpath 'com.android.tools.build:gradle:3.0.0'
        //需要手动添加的
        classpath 'org.greenrobot:greendao-gradle-plugin:3.2.2'
    }

子app中的gradle中最上面添加代码*** 1***,如下:

apply plugin: 'com.android.application'
//需要手动添加
apply plugin: 'org.greenrobot.greendao' 

子app中的gradle中android下面添加代码*** 2***,如下:

greendao{
    schemaVersion 1 // 数据库版本号
    //注意路径需要修改,是本项目中activity的对应路径
    daoPackage  'zhangyanran20181007.bwie.com.greend.greendao'//greenDao 自动生成的代码保存的包名
    targetGenDir   'src/main/java' //自动生成的代码存储的路径,默认是 build/generated/source/greendao.
    generateTests false //true的时候自动生成测试单元
    //targetGenDirTests: 测试单元的生成目录默认是 src/androidTest/java
}

最后添加依赖,如下:

implementation 'org.greenrobot:greendao:3.2.2'

创建一个bean包,将数据的信息封装(可以根据对应信息的自段修改),代码如下:

@Entity(nameInDb = "user_info",indexes = {@Index(value = "name DESC",unique = true)})
public class User {
    @Id
    private Long id;

    @Property(nameInDb = "USERNAME")
    @NotNull
    private String name;

    private String sex;

    @Transient int tempUsageCount;

然后点击小锤子,自动生成greendao对应的三个类

(二)

创建一个初始化MyAppliction类,继承appliction,在AndroidManifest中注册一下,代码如下:

public class MyAppliction extends Application {
    private final static String DB_NAME = "testt.db";
    private static DaoSession daoSession;

    @Override
    public void onCreate() {
        super.onCreate();
        DaoMaster.DevOpenHelper helper = new DaoMaster.DevOpenHelper(this, DB_NAME);
        SQLiteDatabase database = helper.getWritableDatabase();
        DaoMaster daoMaster = new DaoMaster(database);
        daoSession = daoMaster.newSession();
    }
    public static DaoSession getDaoSession(){
        return daoSession;
    }
}

(三)

最后在MainActivity中调用对应数据库的方法实现日志打印,代码如下:

public class MainActivity extends AppCompatActivity {

    private UserDao userDao;

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
        init();
        test();
        testSearch();
    }

    private void testSearch() {
        List<User> users = userDao.loadAll();
        for (int i = 0; i < users.size(); i++) {
            User usert = users.get(i);
            Log.e("myMessage"," name = "+usert.getName() + "sex=" + usert.getSex());
        }
    }

    private void test() {
        User user = new User();
        user.setId(001l);
        user.setSex("男");
        user.setName("张艳燃");
        userDao.insert(user);
    }

    private void init() {
        DaoSession daoSession = MyAppliction.getDaoSession();
        userDao = daoSession.getUserDao();
    }
}