美文网首页
GreenDao的使用

GreenDao的使用

作者: 方可为友 | 来源:发表于2021-05-07 10:37 被阅读0次

注意:greendao不能用kotlin写
注意:greendao的插件版本要与gradle保持一致,否则会报以下错误

Unable to find method 'org.gradle.api.tasks.TaskInputs.property(Ljava/lang/String;Ljava/lang/Object;)Lorg/gradle/api/tasks/TaskInputs;'
org.gradle.api.tasks.TaskInputs.property(Ljava/lang/String;Ljava/lang/Object;)Lorg/gradle/api/tasks/TaskInputs;

Gradle's dependency cache may be corrupt (this sometimes occurs after a network connection timeout.)

Re-download dependencies and sync project (requires network)
The state of a Gradle build process (daemon) may be corrupt. Stopping all Gradle daemons may solve this problem.

Stop Gradle build processes (requires restart)
Your project may be using a third-party plugin which is not compatible with the other plugins in the project or the version of Gradle requested by the project.

In the case of corrupt Gradle processes, you can also try closing the IDE and then killing all Java processes.

使用步骤

  • 添加依赖
buildscript {
    repositories {
        jcenter()
        mavenCentral() // add repository
    }
    dependencies {
        classpath 'com.android.tools.build:gradle:3.5.3'
        classpath 'org.greenrobot:greendao-gradle-plugin:3.3.0' // add plugin
    }
}
apply plugin: 'com.android.application'
apply plugin: 'org.greenrobot.greendao' // apply plugin
 
dependencies {
    implementation 'org.greenrobot:greendao:3.3.0' // add library
}
  • 编写实体类,并编译,最好是直接运行app到手机上,得到实体类对应的dao对象
@Entity
public class Student {

    @Id
    private Long id;

    private String name;

    private int age;
}
  • 然后拿到每个实体类的dao对象
public class DemoApplication extends Application {

    private static DaoMaster sDaoMaster;

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

        //创建数据库
        DaoMaster.DevOpenHelper devOpenHelper = new DaoMaster.DevOpenHelper(this, "demo.db", null);
        //拿到数据库管理真对象
        sDaoMaster = new DaoMaster(devOpenHelper.getWritableDatabase());
    }

    public static StudentDao getStudentDao(){
        return sDaoMaster.newSession().getStudentDao();
    }

}
  • 布局


    image.png
  • 增删改查
public class MainActivity extends AppCompatActivity {
    String TAG="MainActivity";

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

    ///增
    public void add(View view) {
        Log.e(TAG,"add");
        Student student=new Student();
        student.setName("zhangsan");
        student.setAge(10);
        long insert = DemoApplication.getStudentDao().insert(student);
        if (insert > 0) {
            Log.e(TAG, "插入成功!");
        } else {
            Log.e(TAG, "插入失败!");
        }
    }

    ///删
    public void delete(View view) {
    }

    ///改
    public void update(View view) {
    }

    ///查
    public void query(View view) {
        Log.e(TAG,"query");
        List<Student> list = DemoApplication.getStudentDao().queryBuilder().build().list();
        for (Student student : list) {
            Log.e(TAG,"查到结果:"+student.toString());
        }
    }
}

相关文章

网友评论

      本文标题:GreenDao的使用

      本文链接:https://www.haomeiwen.com/subject/trrsdltx.html