您的位置:首页 > 其它

GreenDao简单使用

2018-01-27 00:09 176 查看

greenDAO 优势

1、一个精简的库2、性能最大化3、内存开销最小化4、易于使用的 APIs5、对 Android 进行高度优化1.在build.gradle中进行配置,也就是项目的根路径添加依赖buildscript {repositories {google()jcenter()}dependencies {classpath 'com.android.tools.build:gradle:3.0.1'classpath 'com.jakewharton:butterknife-gradle-plugin:8.4.0'classpath 'org.greenrobot:greendao-gradle-plugin:3.2.2' // add plugin// NOTE: Do not place your application dependencies here; they belong// in the individual module build.gradle files}}2.module中的build.gradle 进行添加
// In your app projects build.gradle file:
apply plugin: 'com.android.application'
apply plugin: 'org.greenrobot.greendao' // apply plugin
dependencies {compile 'org.greenrobot:greendao:3.2.2' // add library}
3.
greendao {schemaVersion 1daoPackage 'com.bwie.myapplication.gen'//自己项目名和包名+gentargetGenDir 'src/main/java'}
//使用1.首先创建一个entity包,在创建一个bean类2.make project 一下3.会自动生成gen包3.写工具类public class GreenDaoUtils {private static GreenDaoUtils greenDaoUtils;private DaoMaster daoMaster;private DaoSession daoSession;private DaoMaster.DevOpenHelper devOpenHelper;private SQLiteDatabase database;//双重检验锁单例模式public static GreenDaoUtils getGreendaoutils(){if(greenDaoUtils==null){synchronized (GreenDaoUtils.class){if(greenDaoUtils==null){greenDaoUtils=new GreenDaoUtils();}}}return greenDaoUtils;}//调用初始化的方法public void init(){setDatebase();}//初始化greendao生成的几个重要对象public void setDatebase(){devOpenHelper=new DaoMaster.DevOpenHelper(MyApp.context,"Zou",null);database=devOpenHelper.getWritableDatabase();daoMaster=new DaoMaster(database);daoSession=daoMaster.newSession();}public DaoSession getDaoSession(){return daoSession;}public SQLiteDatabase getDatabase(){return database;}}5.创建MyApp类
public class MyApp extends Application {public static Context context;@Overridepublic void onCreate() {super.onCreate();context=getApplicationContext();GreenDaoUtils.getGreendaoutils().init();}}
6.实际操作public class MainActivity extends AppCompatActivity {@BindView(R.id.lv)ListView lv;private UserDao userDao;int aa;int bb;int cc;private List<User> users;private MyAdaper m;@Overrideprotected void onCreate(Bundle savedInstanceState) {super.onCreate(savedInstanceState);setContentView(R.layout.activity_main);ButterKnife.bind(this);//拿到操作者DaoSession daoSession = GreenDaoUtils.getGreendaoutils().getDaoSession();//拿到执行者userDao = daoSession.getUserDao();users = userDao.loadAll();m = new MyAdaper(this,users);lv.setAdapter(m);}@OnClick({R.id.dan,R.id.pl,R.id.xiu,R.id.shan,R.id.cha1,R.id.cha2,R.id.fenye})public void btn(View v){switch (v.getId()){case R.id.dan://单条添加userDao.insert(new User("小于"+(++aa),"24",null));show();break;case R.id.pl://批量添加for (int i = 10; i < 31; i++) {userDao.insert(new User("小于"+i,"24",null));}show();break;case R.id.xiu://修改userDao.update(new User("小庄","25", (long) (++bb)));show();break;case R.id.shan://删除userDao.deleteByKey((long) ++cc);show();break;case R.id.cha1://查询主键下单条数据Query<User> build = userDao.queryBuilder().where(UserDao.Properties.Id.eq(20)).build();users = build.list();m = new MyAdaper(this,users);lv.setAdapter(m);break;case R.id.cha2://查询所有show();break;case R.id.fenye://分页查询Query<User> build1 = userDao.queryBuilder().offset(10).limit(20).build();users=build1.list();m = new MyAdaper(this,users);lv.setAdapter(m);break;}}//查询的方法public void show(){users = userDao.loadAll();m = new MyAdaper(this,users);lv.setAdapter(m);}}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: