1. 程式人生 > >Android GreenDao3.2.0使用

Android GreenDao3.2.0使用

package com.example.greendao;

import android.content.ContentValues;
import android.database.Cursor;
import android.database.sqlite.SQLiteDatabase;
import android.support.v7.app.AppCompatActivity;
import android.os.Bundle;
import android.util.Log;
import android.view.View;
import android.widget.Button;

import
org.greenrobot.greendao.query.QueryBuilder;

import java.util.List;

public class MainActivity extends AppCompatActivity implements View.OnClickListener {
    /**     * 資料庫的名字     */private finalStringDBName= "greendao_test.db";
    //Button的成員變數privateButtoncreatBtn;
    private Button addBtn;
    private
Button delBtn;
    private Button delAllBtn;
    private Button modifyBtn;
    private Button queryBtn;
    private Button queryAllBtn;
    //操作user表的成員變數UserDao userDao = null;

    @Overrideprotected voidonCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main
);

        creatBtn = (Button) findViewById(R.id.create_sq);
        addBtn = (Button) findViewById(R.id.add_sq);
        delBtn = (Button) findViewById(R.id.del_sq);
        delAllBtn = (Button) findViewById(R.id.delall_sq);
        modifyBtn = (Button) findViewById(R.id.modify_sq);
        queryBtn = (Button) findViewById(R.id.query_one_sq);
        queryAllBtn = (Button) findViewById(R.id.query_all_sq);
        creatBtn.setOnClickListener(this);
        addBtn.setOnClickListener(this);
        delBtn.setOnClickListener(this);
        delAllBtn.setOnClickListener(this);
        modifyBtn.setOnClickListener(this);
        queryBtn.setOnClickListener(this);
        queryAllBtn.setOnClickListener(this);
    }

    @Overridepublic voidonClick(View v) {
        switch (v.getId()) {
            //點選建立資料庫的操作,如果已經建立過則預設不再建立 只是開啟資料庫 並獲取操作user表的sessioncaseR.id.create_sq:
                //獲取DaoMaster物件DaoMaster.DevOpenHelper devOpenHelper =newDaoMaster.DevOpenHelper(getApplicationContext(),DBName,null);
                DaoMaster daoMaster = new DaoMaster(devOpenHelper.getWritableDb());
                //獲取DaoSession物件DaoSession daoSession = daoMaster.newSession();
                //獲取UserDao物件userDao= daoSession.getUserDao();
                Log.i("tag", "create db");
                break;
            //點選增加資料的操作caseR.id.add_sq:
                //新增一條資料 GreenDao一般預設將id欄位作為唯一約束並自動增長 在新增資料時不要新增id相同的資料  否則會報錯User user =newUser();
                user.setPwd("123");
                user.setUsername("zhangsan");
                if (userDao!=null) {
                    try {
                        userDao.insert(user);
                        Log.i("tag","insert data in db");
                    } catch (Exception e) {
                        e.printStackTrace();
                    }
                }
                break;
            //點選刪除某條資料的操作caseR.id.del_sq:
                //刪除id為1的資料if(userDao!=null) {
                    userDao.deleteByKey(1l);
                    Log.i("tag","delete data in db");
                }
                break;
            //點選刪除全部資料的操作caseR.id.delall_sq:
                //刪除全部資料if(userDao!=null) {
                    userDao.deleteAll();
                    Log.i("tag","delete all data in db");
                }
                break;
            //點選修改資料的操作caseR.id.modify_sq:
                //修改資料 將密碼改為321User user1 =newUser(1L,"zhangsan","321");
                if (userDao!=null) {
                    userDao.update(user1);
                    Log.i("tag","update data in db");
                }
                break;
            //點選查詢某條資料的操作caseR.id.query_one_sq:
                //查詢id為 1 的資料if(userDao!=null) {
                    QueryBuilder<User> queryBuilder = userDao.queryBuilder();
                    queryBuilder.where(UserDao.Properties.Id.eq(1L));
                    User u = queryBuilder.unique();
                    if (u != null){
                        Log.i("tag","id = "+ u.getId() +"\n"+"username = "+ u + "\n"+"pwd = "+ u + "\n");
                    } else {
                        Log.i("tag","no this data ");
                    }
                }
                break;
            //點選查詢全部資料的操作caseR.id.query_all_sq:
                //查詢全部資料if(userDao!=null) {
                    List<User> users = userDao.loadAll();
                    if (users != null && users.size() > 0) {
                        for (inti =0; i < users.size(); i++) {
                            Log.i("tag","id = "+ users.get(i).getId() +"\n"+"username = "+ users.get(i).getUsername() +"\n"+"pwd = "+ users.get(i).getPwd() +"\n");
                        }
                    } else {
                        Log.i("tag","no data in db");
                    }
                }
                break;
        }
    }
}