我相信,在平时的开发过程中,大家一定会或多或少地接触到数据库。然而在使用它时,我们往往需要做许多额外的工作,像编写 SQL 语句与解析查询结果等。所以,适用于 Android 的greedao数据库也就孕育而生,简单的讲,greenDAO 是一个将对象映射到 SQLite 数据库中的轻量且快速的解决方案。

GREENDAO 设计的好处

  • 一个精简的库

  • 性能最大化

  • 内存开销最小化

  • 易于使用的 APIs

  • 对 Android 进行高度优化

给提供一篇关于greenDAO的文章,里面详细的介绍Android studio搭建greenDao: http://www.open-open.com/lib/view/open1438065400878.html

如何开始

现在我们就来讲一下greedao的简单使用吧!!! 首先,和往常一样导入依赖包,进行配置greedao数据库
compile 'org.greenrobot:greendao:3.0.1'compile 'org.greenrobot:greendao-generator:3.0.0'
build.gradle配置
apply plugin: 'org.greenrobot.greendao'buildscript {    repositories {        mavenCentral()    }    dependencies {        classpath 'org.greenrobot:greendao-gradle-plugin:3.0.0'    }}greendao {    schemaVersion 1    daoPackage 'com.wyk.greendaodemo.greendao.gen'    targetGenDir 'src/main/java'}
需要实现一个Bean对象进行保存数据
import org.greenrobot.greendao.annotation.Entity;import org.greenrobot.greendao.annotation.Id;import org.greenrobot.greendao.annotation.Transient;import org.greenrobot.greendao.annotation.Generated;@Entity //指定为数据库类的对象public class User {      @Id   //此ID必须有且为long类型    private Long id;      private String name;    @Transient  //这个注解意思为这个属性不会保存到数据库为属性 在数据库中不对这个属性进行操作    private int tempUsageCount; // not persisted
    public String getName() {        return this.name;   //下面的方法自己无需定义 点击studio上方Build->Make Project会自动生成文件    }    public void setName(String name) {        this.name = name;    }    public Long getId() {        return this.id;    }    public void setId(Long id) {        this.id = id;    }    @Generated(hash = 873297011)    public User(Long id, String name) {        this.id = id;        this.name = name;    }    @Generated(hash = 586692638)    public User() {    }    @Override    public String toString() {        return "User{" +                "id=" + id +                ", name='" + name + '\'' +                ", tempUsageCount=" + tempUsageCount +                '}';    }}
自己生成的三个核心类

基本上这样的配置就算完成了,简单的写一下增删改查的
创建一个类继承Application初始化数据库:
import android.app.Application;import com.wyk.greendaodemo.greendao.gen.DaoMaster;import com.wyk.greendaodemo.greendao.gen.UserDao;/** * Created by 15218 on 2017/11/7. */public class App extends Application {    private UserDao userDao;    //暴露给外部使用此数据库    public UserDao getUserDao() {        return userDao;    }    @Override    public void onCreate() {        super.onCreate();        //对数据库进行初始化    liu.db 数据库的名字        DaoMaster.DevOpenHelper devOpenHelper = new DaoMaster.DevOpenHelper(this,"liu.db");        DaoMaster daoMaster = new DaoMaster(devOpenHelper.getWritableDb());        userDao = daoMaster.newSession().getUserDao();    }}
这样我们的逻辑就好写了吧,在我们的Mantivity里边得到数据库,进行对数据库的操作
import android.os.Bundle;import android.support.v7.app.AppCompatActivity;import android.view.View;import android.widget.Toast;import com.wyk.greendaodemo.greendao.gen.UserDao;import org.greenrobot.greendao.query.QueryBuilder;import java.util.ArrayList;import java.util.List;
public class MainActivity extends AppCompatActivity {    private UserDao userDao;    @Override    protected void onCreate(Bundle savedInstanceState) {        super.onCreate(savedInstanceState);        setContentView(R.layout.activity_main);        App app = (App) getApplication();//得到数据库使用        userDao = app.getUserDao();    }    public void add(View v){//添加单条数据        User u = new User(null,"刘备");        userDao.insert(u);    }    public void addAll(View v){//批量添加        userDao.insertInTx(new User[]{new User(null,"达摩"),                new User(null,"赵云"),                new User(null,"亚瑟")        ,new User(null,"吕布")});    }    public void delete(View v){//删除单条        userDao.deleteByKey((long) 1);    }    public void deleteAll(View v){  //批量删除        userDao.deleteAll();    }    public void updata(View v){   //修改单条        User u = new User(Long.valueOf(1),"孙尚香");        userDao.update(u);    }    public void updataAll(View v){   //批量修改        userDao.updateInTx(new User[]{                new User(Long.valueOf(2),"孙尚香1"),                new User(Long.valueOf(3),"孙尚香2")                ,new User(Long.valueOf(4),"孙尚香3")        });    }    public void select(View v){   //条件查询        QueryBuilder userQueryBuilder = userDao.queryBuilder();        List list = userQueryBuilder.build().list();        List l = new ArrayList<>();        for (int i=0;i users = userDao.loadAll();        //吐司事件        Toast.makeText(MainActivity.this,users.toString(),Toast.LENGTH_SHORT).show();    }}
Mantivity.xml文件:
<?xml version="1.0" encoding="utf-8"?>    
效果:
Sqlite中显示的
以上就是greedao数据库最简单的使用操作啦,后续会进一步的研究一些注解和一些关于数据库关联的操作。
推荐文章:Greedao的注解   http://blog.csdn.net/bugproof/article/details/52074959
Greedao的关联   http://blog.csdn.net/u010687392/article/details/48496299
Greedao的操作   http://blog.csdn.net/njweiyukun/article/details/51893092


更多相关文章

  1. Android(安卓)监听短信(同时监听广播和数据库)
  2. 【开发框架】GreenDao数据库框架的搭建和使用
  3. Android来电和短信操作
  4. android 蓝牙隐藏对话框 后台配对
  5. Android---Android下嵌入式数据库SqlLite使用方法
  6. GreenDAO—Android(安卓)ORM框架(一)
  7. android NoticificationManager状态栏操作
  8. android SQLite数据库的增删改查以及事务的单元测试
  9. Android(安卓)greedao数据库简单的升级

随机推荐

  1. 《第一行代码--Android》读书笔记之UI篇
  2. Android(安卓)shap selector animation
  3. Android(安卓)资源文件中@、@android:typ
  4. Android世界的15款开源的游戏开发引擎
  5. Android(安卓)组件长宽比重设置总结
  6. 关于Android中xml布局文件之android 入门
  7. Android(安卓)Wear开发者预览配置过程
  8. android 电池(三):android电池系统
  9. android 异步处理
  10. 跟大家分享下Android布局文件layout.xml