1导入依赖
//根gradle
classpath 'org.greenrobot:greendao-gradle-plugin:3.2.2'
//项目gradle
implementation 'org.greenrobot:greendao:3.2.2'
greendao { schemaVersion 1 daoPackage'包名.database'//设置时生成代码的目录 targetGenDir'src/main/java'//设置DaoMaster、DaoSession、Dao目录 }
apply plugin: 'org.greenrobot.greendao'
2.定会一个app ,并在清单文件中配置
package com.example.thinkpad.wsjshuju; import android.app.Application; import com.example.thinkpad.wsjshuju.database.DaoMaster; public class App extends Application{ private DaoManager d; @Override public void onCreate() { super.onCreate(); d = DaoManager.instance(this); } }
还要定义一个bean类
@Entity(nameInDb = "person", active = true) public class person { @Id(autoincrement = true) //自增长 private Long id; //在数据库中定义名字 就是想定义的名字和数据库中不一样时用 @Property(nameInDb = "name") private String name1; private int age; //不想在数据库中存放该变量 @Transient private int gonder; }j
建一个
DaoManager类
package com.example.thinkpad.wsjshuju; import android.content.Context; import com.example.thinkpad.wsjshuju.database.DaoMaster; import com.example.thinkpad.wsjshuju.database.DaoSession; import java.util.concurrent.atomic.AtomicIntegerArray; public class DaoManager { private static DaoManager daoManager; private final DaoSession daoSession; private DaoManager(Context context){ daoSession = DaoMaster.newDevSession(context, "my.db"); } public static DaoManager instance(Context context){ if (daoManager==null){ synchronized (DaoManager.class){ if (daoManager==null){ daoManager= new DaoManager(context); } } } return daoManager; } public DaoSession getDaoSession() { return daoSession; } }
package com.example.thinkpad.wsjshuju; import android.support.v7.app.AppCompatActivity; import android.os.Bundle; import android.util.Log; import android.view.View; import com.example.thinkpad.wsjshuju.database.DaoSession; import com.example.thinkpad.wsjshuju.database.personDao; import java.util.List; public class MainActivity extends AppCompatActivity { private DaoSession daoSession; private personDao personDao; private int index; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); daoSession = DaoManager.instance(this).getDaoSession(); personDao = daoSession.getPersonDao(); } public void add(View view) { index++; personDao.insert(new person(null,"wang"+index,index)); } public void upate(View view) { person person = personDao.queryBuilder() .where(com.example.thinkpad.wsjshuju.database.personDao.Properties.Id.eq(1)) .build().unique(); person.setAge(1000); personDao.update(person); } public void delete(View view) { person person = personDao.queryBuilder() .where(com.example.thinkpad.wsjshuju.database.personDao.Properties.Id.eq(1)) .build().unique(); personDao.delete(person); } public void query(View view) { List<person> list = personDao.queryBuilder() .where(com.example.thinkpad.wsjshuju.database.personDao.Properties.Id.ge(5)) .build().list(); Log.e("tag","query"+list.get(0).getId()); } }