GreenDao简单介绍及使用

大buide中,导入

classpath 'org.greenrobot:greendao-gradle-plugin:3.2.0'

配置数据库,注册Application

/**
 * 用来配置数据库
 */
public class MyApp extends Application {
    private static DaoSession mDaoSession;

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

    private void initGreenDao() {
        //第一步创建OpenHelper类
        DaoMaster.DevOpenHelper openHelper = new DaoMaster.DevOpenHelper(this, "lxx.db");
        //开启一个可写数据库类
        SQLiteDatabase writableDatabase = openHelper.getWritableDatabase();
        //通过DaoMaster封装
        DaoMaster master = new DaoMaster(writableDatabase);
        mDaoSession = master.newSession();
    }

    public static DaoSession getDaoSession() {
        return mDaoSession;
    }
}

这是小build中导入的

implementation 'org.greenrobot:greendao:3.2.2'

greendao {
        schemaVersion 1//数据库版本号
        daoPackage 'com.example.test_butterknife.greendao'//设置DaoMaster、DaoSession、Dao包名
        targetGenDir 'src/main/java'//设置DaoMaster、DaoSession、Dao目录
        //targetGenDirTest:设置生成单元测试目录
        //generateTests:设置自动生成单元测试用例
    }

需要新建一个实体类 通过@Entity 然后用锤子敲

@Entity
public class Teacher {
    @Id(autoincrement = true)
    private Long id;
    private String name;
    private String sex;
    }

main中的使用

	**
 * 对象关系型数据库
 * GreenDao 是一个数据库框架 也是注解型的框架
 * 通过注解可以直接吧java的实体类直接创建成数据库
 * 如何配置GreenDao
 * 1:在项目的build.grade文件里加入一行代码   classpath 'org.greenrobot:greendao-gradle-plugin:3.2.0'
 * 2:在app的build.grade里面加上代码 apply plugin: 'org.greenrobot.greendao'
 * 3:在app的build.grad里面Android{}里加上代码
 * greendao{
 * schemaVersion 1 //指定数据库schema版本号,迁移等操作会用到
 * //包名是活的这是变动的
 * daoPackage 'soexample.umeng.com.greendaodemo.mydao' //dao的包名,包名默认是entity所在的包;
 * targetGenDir 'src/main/java'//生成数据库文件的目录
 * }
 * 4:导入依赖 implementation 'org.greenrobot:greendao:3.2.2'
 * 需要新建一个实体类 通过@Entity
 * 通过锤子(make Project)
 * 1:DaoMaster
 * 2:DaoSession
 * 3:StudentDao
 *
 * 查看当前市面上有多少开源框架 数据库的
 * ORMLite 数据框架  GreenDao Facebook推出的Stetho
 *
 */
public class MainActivity extends AppCompatActivity {
    @BindView(R.id.Insert_Btn)
    Button InsertBtn;
    @BindView(R.id.Delete_Btn)
    Button DeleteBtn;
    @BindView(R.id.Update_Btn)
    Button UpdateBtn;
    @BindView(R.id.Select_Btn)
    Button SelectBtn;
    @BindView(R.id.Get_Content)
    TextView GetContent;
    private StudentDao mStuDao;

@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_main);
    ButterKnife.bind(this);
    mStuDao = MyApp.getDaoSession().getStudentDao();
}

@OnClick({R.id.Insert_Btn, R.id.Delete_Btn, R.id.Update_Btn, R.id.Select_Btn})
public void onViewClicked(View view) {
    switch (view.getId()) {
        case R.id.Insert_Btn:
            insertStu();
            break;
        case R.id.Delete_Btn:
            deleteStu();
            break;
        case R.id.Update_Btn:
            updateStu();
            break;
        case R.id.Select_Btn:
            selectStu();
            break;
    }
}

//插入数据
private void insertStu() {
    Student student = new Student("李广强", "丑八怪", 38);
    long insert = mStuDao.insert(student);
    if (insert > 0) {
        Toast.makeText(this, "插入成功", Toast.LENGTH_SHORT).show();
    }
}

//删除数据  删除必须要删除数据库里面存在的数据
private void deleteStu() {
    mStuDao.deleteByKey(1l);
    Toast.makeText(this, "删除成功", Toast.LENGTH_SHORT).show();
}

//修改数据
private void updateStu() {
    //修改必须要修改数据库里面存在的数据
    Student student = mStuDao.load(1l);
    student.setAge(3);
    student.setName("wwd");
    student.setSex("奇丑无比");
    mStuDao.update(student);
}

//查询数据
private void selectStu() {
    //查询所有数据
    GetContent.setText("");
    List<Student> students = mStuDao.loadAll();
    GetContent.setText(students.toString());
}
}

猜你喜欢

转载自blog.csdn.net/wangyonghao132/article/details/85558065