# 數據庫初始化
DemoApplication累承擔了DaoSession的初始化工作
~~~
public class DemoApplication extends Application {
public static final boolean ENCRYPTED = false;
private static DemoApplication youAppction;
private DaoSession daoSession;
@Override
public void onCreate() {
super.onCreate();
DaoMaster.DevOpenHelper helper = new DaoMaster.DevOpenHelper(this, ENCRYPTED ? "notes-db-encrypted" : "notes-db3");
Database db = ENCRYPTED ? helper.getEncryptedWritableDb("super-secret") : helper.getWritableDb();
daoSession = new DaoMaster(db).newSession();
}
public static DemoApplication getInstance() {
return youAppction;
}
public DaoSession getDaoSession() {
return daoSession;
}
}
~~~
# 以登錄模塊為例,講解GreenDao的用法
~~~
UserDao noteDao=((DemoApplication)getApplication()).getDaoSession().getUserDao() if(noteDao.queryBuilder().where(UserDao.Properties.Password.eq(password),UserDao.Properties.Username.eq(username)).count()>0){
Log.i("登錄成功","ok");
Toast.makeText(getApplicationContext(),"登錄成功!",Toast.LENGTH_LONG).show();
Constant.Account account= Constant.getAccount();
account.setPhone(username);
account.setPassword(password);
startActivity(new Intent(LoginActivity.this,MainActivity.class));
}else {
Log.i("登錄失敗","密碼錯誤");
Toast.makeText(getApplicationContext(),"登錄失敗!賬號密碼錯誤",Toast.LENGTH_LONG).show();
}
~~~
這段代碼講的是 如果 userdao對象,在數據庫查詢不到結果,就說明輸入的賬號密碼信息錯誤,從而提示登錄失敗、密碼錯誤的信息。
第一步先創建UserDao 對象
`UserDao noteDao=((DemoApplication)getApplication()).getDaoSession().getUserDao() `
第二步再編寫數據庫查詢語句
~~~
noteDao.queryBuilder().where(UserDao.Properties.Password.eq(password),UserDao.Properties.Username.eq(username)).count()
~~~
count為0,說明輸入的賬號密碼插敘匹配不到數據,count不為0,則說明賬號密碼正確。
# 以注冊模塊為例,講解GreenDao的插入用法
~~~
User user=new User();
user.setUsername(username);
user.setPassword(password);
try {
noteDao.insert(user);
Log.i("注冊成功","ok");
Toast.makeText(getApplicationContext(),"注冊成功!",Toast.LENGTH_LONG).show();
Constant.Account account= Constant.getAccount();
account.setPhone(username);
account.setPassword(password);
startActivity(new Intent(LoginActivity.this,MainActivity.class));
}catch (Exception e){
Log.i("注冊失敗","手機號已存在");
Toast.makeText(getApplicationContext(),"注冊失敗!手機號已存在",Toast.LENGTH_LONG).show();
Log.e("注冊失敗信息",e.toString());
}
~~~
首先想明白自己要插入什么:User對象,因此第一步是先創建User對象
~~~
User user=new User();
user.setUsername(username);
user.setPassword(password);
~~~
其次使用userdao對象,插入user對象,插入的過程不一定會成功,失敗會拋出異常,因此我們使用try{}cath語句進行攔截異常。
插入成功,給予注冊成功的提示,插入失敗,給予注冊失敗的提示即可。