當前位置:首頁 » 安卓系統 » rawqueryandroid

rawqueryandroid

發布時間: 2023-01-01 05:08:09

① Android GreenDao rawQuery 之 like 、 or、 = 拼接查詢條件

private void queryLocomotiveList() {

        List<Locomotive> locomotiveList = new ArrayList<>();

        String locomotiveModeName = tvEngineMode.getText().toString().trim();

        String locomotive = tvEngineNo.getText().toString().trim();

        try {

            //請求參數

            ArrayList<String> strParamLt = new ArrayList<String>();

            String queryString =

                    "SELECT DISTINCT *  FROM " + LocomotiveDao.TABLENAME + " where 1==1 ";

            if (!TextUtils.isEmpty(locomotiveModeName)) {

                queryString = queryString + " and " + LocomotiveDao.Properties.TrainModelName.columnName + " =  ?";

                strParamLt.add(locomotiveModeName);

            }

            if (!TextUtils.isEmpty(locomotive)) {

                queryString = queryString + " and " + LocomotiveDao.Properties.TrainNo.columnName + " like '%" + locomotive + "%' ";

            }

            if (!TextUtils.isEmpty(healthy) || !TextUtils.isEmpty(attention) || !TextUtils.isEmpty(repair)){

                String healthyTypeStr = " and " + "(";

                if (!TextUtils.isEmpty(healthy)) {

                    healthyTypeStr += LocomotiveDao.Properties.HealthAnalysisLevel.columnName + " =  ?" + " or ";

                    strParamLt.add(healthy);

                }

                if (!TextUtils.isEmpty(attention)) {

                    healthyTypeStr += LocomotiveDao.Properties.HealthAnalysisLevel.columnName + " =  ?" + " or ";

                    strParamLt.add(attention);

                }

                if (!TextUtils.isEmpty(repair)) {

                    healthyTypeStr += LocomotiveDao.Properties.HealthAnalysisLevel.columnName + " =  ?";

                    strParamLt.add(repair);

                }

                if (healthyTypeStr.endsWith("or ")){

                    healthyTypeStr = healthyTypeStr.substring(0,healthyTypeStr.length() - 3);

                }

                healthyTypeStr += ")";

                queryString = queryString + healthyTypeStr;

            }

            Log.e("queryString",queryString);

            Object[] objs = strParamLt.toArray();

            String[] strs = new String[objs.length];

            for (int i = 0; i < objs.length; i++) {

                strs[i] = objs[i].toString();

            }

            Log.e("strs",new Gson().toJson(strs));

            Cursor cursor = DaoManager.getInstance().getDaoSession().getDatabase().rawQuery(queryString, strs);

            int trainNoIndex = cursor.getColumnIndex(LocomotiveDao.Properties.TrainNo.columnName);

            int trainModeNameIndex = cursor.getColumnIndex(LocomotiveDao.Properties.TrainModelName.columnName);

            int healthIndex = cursor.getColumnIndex(LocomotiveDao.Properties.HealthAnalysisLevel.columnName);

            while (cursor.moveToNext()) {

                Locomotive bean = new Locomotive();

                bean.setTrainNo(cursor.getString(trainNoIndex));

                bean.setTrainModelName(cursor.getString(trainModeNameIndex));

                bean.setHealthAnalysisLevel(cursor.getString(healthIndex));

                locomotiveList.add(bean);

            }

            Log.e("locomotiveList",new Gson().toJson(locomotiveList));

        } catch (Exception e) {

            e.printStackTrace();

        }

        mAdapter.setNewData(locomotiveList);

    }

② android sqlite中查詢數據rawQuery方法中String[] selectionArgs的詳解,謝謝!!!

既然你選擇了有條件的sql語句,假如你有一個data表有下面這樣的數據
id name number
1 lisi 5554
2 wangwu 5556
rawQuery的sql語句select * from data where name=?,後面selectionArgs是?條件值,如果?這個佔位符為null的話就表示把所有的name查出來(lisi,wangwu都會返回到Cursor結果集里),如果這個?佔位符有值為wangwu,就表示只把wangwu這條數據查出來,所以?就是selectionArgs佔位符,而selectionArgs就是具體條件,為null就表示全部都要,如果指定的要選wangwu就要new String[] {"wangwu"}這個佔位符?的值給出來。

③ android rawQuery內的參數是什麼鬼

你好,rawQuery裡面的參數是資料庫查詢語句。就是標準的SQL語句,如果不了解,可以找點資料庫的書籍看看,SQL語句是資料庫最基本的,也是非常重要的知識點。這語句意思是,在dict資料庫表中查詢word欄位或者detail欄位中包含key的項。其中的*代表所有的,就是資料庫中的所有欄位都要查詢出來,%是通配符,%key%,代表只要字元串有key就符合(key%代表以key開頭,%key代表以key結尾),問號是傳入參數的意思,就是將後面的兩個"%" + key + "%"按順序傳入問號處

④ android怎麼實現sqlite的增刪改查

SQL語句大全

--語 句 功 能
--數據操作
SELECT --從資料庫表中檢索數據行和列
INSERT --向資料庫表添加新數據行
DELETE --從資料庫表中刪除數據行
UPDATE --更新資料庫表中的數據
--數據定義
CREATE TABLE --創建一個資料庫表
DROP TABLE --從資料庫中刪除表
ALTER TABLE --修改資料庫表結構
CREATE VIEW --創建一個視圖
DROP VIEW --從資料庫中刪除視圖
CREATE INDEX --為資料庫表創建一個索引
DROP INDEX --從資料庫中刪除索引
CREATE PROCEDURE --創建一個存儲過程
DROP PROCEDURE --從資料庫中刪除存儲過程
CREATE TRIGGER --創建一個觸發器
DROP TRIGGER --從資料庫中刪除觸發器
CREATE SCHEMA --向資料庫添加一個新模式
DROP SCHEMA --從資料庫中刪除一個模式
CREATE DOMAIN --創建一個數據值域
ALTER DOMAIN --改變域定義
DROP DOMAIN --從資料庫中刪除一個域
--數據控制
GRANT --授予用戶訪問許可權
DENY --拒絕用戶訪問
REVOKE --解除用戶訪問許可權
--事務控制
COMMIT --結束當前事務
ROLLBACK --中止當前事務
SET TRANSACTION --定義當前事務數據訪問特徵
--程序化SQL
DECLARE --為查詢設定游標
EXPLAN --為查詢描述數據訪問計劃
OPEN --檢索查詢結果打開一個游標
FETCH --檢索一行查詢結果
CLOSE --關閉游標
PREPARE --為動態執行准備SQL 語句
EXECUTE --動態地執行SQL 語句
DESCRIBE --描述准備好的查詢
---局部變數
declare @id char(10)
--set @id = '10010001'
select @id = '10010001'

---全局變數
---必須以@@開頭

--IF ELSE

熱點內容
scratch少兒編程課程 發布:2025-04-16 17:11:44 瀏覽:640
榮耀x10從哪裡設置密碼 發布:2025-04-16 17:11:43 瀏覽:368
java從入門到精通視頻 發布:2025-04-16 17:11:43 瀏覽:86
php微信介面教程 發布:2025-04-16 17:07:30 瀏覽:310
android實現陰影 發布:2025-04-16 16:50:08 瀏覽:794
粉筆直播課緩存 發布:2025-04-16 16:31:21 瀏覽:346
機頂盒都有什麼配置 發布:2025-04-16 16:24:37 瀏覽:213
編寫手游反編譯都需要學習什麼 發布:2025-04-16 16:19:36 瀏覽:816
proteus編譯文件位置 發布:2025-04-16 16:18:44 瀏覽:367
土壓縮的本質 發布:2025-04-16 16:13:21 瀏覽:594