Android GreenDao3.2.0使用
阿新 • • 發佈:2019-01-10
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;
}
}
}
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
import java.util.List;
public class MainActivity extends AppCompatActivity implements View.OnClickListener {
/** * 資料庫的名字 */private finalStringDBName= "greendao_test.db";
//Button的成員變數privateButtoncreatBtn;
private Button addBtn;
private
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;
}
}
}