日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 运维知识 > Android >内容正文

Android

Android Studio配置GreenDAO 3.2.0和使用方法

發布時間:2025/3/19 Android 49 豆豆
生活随笔 收集整理的這篇文章主要介紹了 Android Studio配置GreenDAO 3.2.0和使用方法 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

我相信,在平時的開發過程中,大家一定會或多或少地接觸到SQLite。然而在使用它時,我們往往需要做許多額外的工作,像編寫SQL語句與解析查詢結果等。所以,適用于Android ORM框架也就孕育而生了,現在市面上主流的框架有OrmLite、SugarORM、Active Android、Realm與GreenDAO。今天主要來講一下GreenDAO 3.0G后的版本是怎么在Android Studio上配置的。
簡單的講,GreenDAO是一個將對象映射到SQLite數據庫中的輕量且快速的ORM解決方案。(greenDAO is a light & fast ORM solution that maps objects to SQLite databases.) 。

一、配置方法

1.直接開始配置,首先找到這個Library,如下圖:

2. 找到相應Module的build.gradle文件,添加的下面的內容:

說明:第三步配置的是生成的數據庫操作模板代碼的路徑。

3.找到Project的build.gradle文件,添加下面的內容:

至此 配置就完成了,下來就開始生成數據庫并使用。

GreenDAO 3.0之前的配置方式可以點這里查看。

二、生成數據庫操作DAO代碼

1.在項目中新建一個表字段的實體類,不需要自己寫get和set方法,在生成表的時候會自動生成。不要忘了在類名上標記@Entity注解如圖:?

2.選擇build ——Make Project 一切順利的話則會在包名下生成數據庫的操作類,如下圖:

三、使用方法

數據庫的操作包括增刪改改查,方法如下:

package com.jackie.greendao;import android.os.Bundle; import android.support.v7.app.AppCompatActivity; import android.view.View; import android.widget.Button; import android.widget.EditText; import android.widget.ListView;import java.util.List;public class MainActivity extends AppCompatActivity implements View.OnClickListener {private EditText mName, mAge;private Button mAdd;private ListView mListView;private DaoMaster.DevOpenHelper mDevOpenHelper;private DaoMaster mDaoMaster;private DaoSession mDaoSession;private PersonDao mPersonDao;@Overrideprotected void onCreate(Bundle savedInstanceState) {super.onCreate(savedInstanceState);setContentView(R.layout.activity_main);initView();initEvent();openDb();}private void initView() {mName = (EditText) findViewById(R.id.name);mAge = (EditText) findViewById(R.id.age);mAdd = (Button) findViewById(R.id.add);mListView = (ListView) findViewById(R.id.list_view);}private void initEvent() {mAdd.setOnClickListener(this);}private void openDb() {mDevOpenHelper = new DaoMaster.DevOpenHelper(this, "person.db", null);mDaoMaster = new DaoMaster(mDevOpenHelper.getWritableDb());mDaoSession = mDaoMaster.newSession();mPersonDao = mDaoSession.getPersonDao();}//插入public void insert() {Person person = new Person(Long.valueOf(1), mName.getText().toString(), Integer.parseInt(mAge.getText().toString()));mPersonDao.insert(person);mName.setText("");mAge.setText("");}public void delete(Person person) {mPersonDao.delete(person);}//更新public void update(Person person) {mPersonDao.insertOrReplace(person);}//查詢public void query() {List<Person> persons = mPersonDao.queryBuilder().list();}@Overridepublic void onClick(View view) {switch (view.getId()) {case R.id.add:insert();break;}} }

四、查詢功能

GreeDAO提供了各種各種的查詢API,參見http://greenrobot.org/greendao/documentation/queries/

如果需要在控制臺查看GreenDao是怎么拼裝SQL語句的,在OnCreate()方法中打開下面的開關:

五、條件查詢

//查詢所有數據public void queryAll() {List<Person> persons = mPersonDao.queryBuilder().list();}//eq: equal 精確查詢 名字等于jackiepublic void queryEq() {Person person = mPersonDao.queryBuilder().where(PersonDao.Properties.Name.eq("jackie")).unique();}//notEq: not equal 精確查詢 名字不等于jackiepublic void queryNotEq() {Person person = mPersonDao.queryBuilder().where(PersonDao.Properties.Name.notEq("jackie")).unique();}//like 模糊查詢 名字以jackie開頭public void queryLike() {Person person = mPersonDao.queryBuilder().where(PersonDao.Properties.Name.like("jackie")).unique();//通配符List<Person> persons = mPersonDao.queryBuilder().where(PersonDao.Properties.Name.like("jackie%")).list();}//between 區間查詢 年齡在20到30之間public void queryBetween() {List<Person> persons = mPersonDao.queryBuilder().where(PersonDao.Properties.Age.between(20, 30)).list();}//gt: greater than 半開區間查詢,年齡大于18public void queryGt() {List<Person> persons = mPersonDao.queryBuilder().where(PersonDao.Properties.Age.gt(18)).list();}//ge: greater equal 半封閉區間查詢,年齡大于或者等于18public void queryGe() {List<Person> persons = mPersonDao.queryBuilder().where(PersonDao.Properties.Age.ge(18)).list();}//lt: less than 半開區間查詢,年齡小于18public void queryLt() {List<Person> persons = mPersonDao.queryBuilder().where(PersonDao.Properties.Age.lt(18)).list();}//le: less equal 半封閉區間查詢,年齡小于或者等于18public void queryLe() {List<Person> persons = mPersonDao.queryBuilder().where(PersonDao.Properties.Age.le(18)).list();}//名字以jackie開頭,年齡升序排序public void queryLikeAsc() {//通配符List<Person> persons = mPersonDao.queryBuilder().where(PersonDao.Properties.Name.like("jackie%")).orderAsc(PersonDao.Properties.Age).list();}//名字以jackie開頭,年齡降序排序public void queryLikeDesc() {List<Person> persons = mPersonDao.queryBuilder().where(PersonDao.Properties.Name.like("jackie%")).orderDesc(PersonDao.Properties.Age).list();}

當上述查詢滿足不了業務邏輯時,可以自定義查詢語句:

六、多線程查詢

首先來看錯誤的方法:

錯誤截圖:

從上面可以看出,只能在創建Query對象的線程中調用查詢方法!

解決方法:

七、1對1查詢


?

總結

以上是生活随笔為你收集整理的Android Studio配置GreenDAO 3.2.0和使用方法的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。