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

androidrawquery

發布時間: 2023-10-21 04:22:30

1. android query 模糊查詢怎麼使用

關於Android中 Cursor 的query加入明御模糊查詢的條件,有如下方式:
1.使用這種query方法%號前不能加',以下為示例代碼:
Cursor c_test = mDatabase.query(tab_name, new String[]{tab_field02}, tab_field02+" LIKE ? ",
new String[] { "%" + str[0] + "%" }, null, null, null);

2.使用這則槐氏種query方法%號前必須加',以下為示例代碼 :
Cursor c_test=mDatabase.query(tab_name, new String[]{tab_field02},tab_field02+" like '%" + str[0] + "%'孫散", null, null, null, null);

3.使用這種方式必須在%號前加' ,以下為示例代碼 :
String current_sql_sel = "SELECT * FROM "+tab_name +" where "+tab_field02+" like '%"+str[0]+"%'";
Cursor c_test = mDatabase.rawQuery(current_sql_sel, null);

2. android rawQuery內的參數是什麼鬼

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

3. android 開發里的 SQLite資料庫的一段 查詢記錄總數,誰能講解下看不懂

//得到操作資料庫的實例
SQLiteDatabase db = dbOpenHelper.getReadableDatabase();
// 調用查找書庫代碼並返回數據敗梁指源
Cursor cursor = db.rawQuery("select count(*)from person",null);
//游標移到第一條記錄渣行准備獲取數察配據
cursor.moveToFirst();
// 獲取數據中的LONG類型數據
Long count = cursor.getLong(0);

這些去查看Android的開發文檔都有的

4. Android用query怎麼進行多條件查詢

SQLiteDatabase 給我提供的方法很不實用,還是建議樓主自己寫sql語句,參數想怎麼傳都可以x0dx0a例如:Cursor c = db.rawQuery("select * from user where username=? and password = ?",x0dx0anew Stirng[]{"用戶名","密碼"});x0dx0ax0dx0a如果你非要調用SQLiteDatabase的query方法,那可以這樣x0dx0adb.query("表名", new String[]{"欄位1,欄位2"}, "條件1=? and 條件2=?", new String[]{"條件1的值,條件2的值"},null,null,null)

5. 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"}這個佔位符?的值給出來。

6. android 怎麼往資料庫裡面添加數據

一、引入
資料庫創建的問題解決了,接下來就該使用資料庫實現應用程序功能的時候了。基
本的操作包括創建、讀取、更新、刪除,即我們通常說的 CRUD(Create, Read, Update, Delete)。
在實現這些操作的時候,我們會使用到兩個比較重要的類 SQLiteDatabase 類和 Cursor 類。

二、創建表
1,execSQL(String sql):執行一條 sql 語句,且執行操作不能為 SELECT
因為它的返回值為 void,所以推薦使用 insert、update 方法等
2.,execSQL (String sql,Object[] bindArgs)
sql:執行一條 sql 語句
bindArgs:為 sql 語句中的?賦值

三、添加數據
1、execSQL(String sql)
2、使用對象的 insert 方法
ContentValues values = new ContentValues();
values.put(USERNAME, user.getUsername());
values.put(PASSWORD, user.getPassword());
db.insert(TABLE_NAME, null, values);
參數:
table:資料庫中的表名
nullColumnHack:指定默認插入欄位,為 null 時能插入數據
values:表示插入欄位所對應的值,使用 put 方法。

四、刪除數據
1、execSQL(String sql)
2、使用對象的 delete 方法
String whereClaues="_id=?";
String [] whereArgs={String.valueOf(id)};
//db.delete(TABLE_NAME, "_id="+id, null);
db.delete(TABLE_NAME, whereClaues, whereArgs);
參數
table:資料庫的表名
whereClause:where 子句,比如:_id=?
whereArgs:where 子句中?的值

五、修改數據
1、execSQL(String sql)
2、使用對象的 delete 方法
ContentValues values = new ContentValues();
values.put(USERNAME, user.getUsername());
values.put(PASSWORD, user.getPassword());
String whereClaues="_id=?";
String [] whereArgs={String.valueOf(user.getId())};
db.update(TABLE_NAME, values, whereClaues, whereArgs);
參數
table:資料庫的表名
values:代表要修改的值,修改方法還是 put(key,values)
whereClause:條件子句,比如 id=?,name=?
whereArgs:為 whereClause 中的?賦值,比如:new String[]{"1","張三"}

圖:

參考代碼:

程序內使用SQLite資料庫是通過SQLiteOpenHelper進行操作

1.自己寫個類繼承SQLiteOpenHelper,重寫以下3個方法

publicvoidonCreate(SQLiteDatabasedb)

{//創建資料庫時的操作,如建表}

publicvoidonUpgrade(SQLiteDatabasedb,intoldVersion,intnewVersion)

{

//版本更新的操作

}

2.通過SQLiteOpenHelper的getWritableDatabase()獲得一個SQLiteDatabase資料庫,以後的操作都是對SQLiteDatabase進行操作。

3.對得到的SQLiteDatabase對象進行增,改,刪,查等操作。

代碼

packagecx.myNote;

importandroid.content.ContentValues;

importandroid.content.Context;

importandroid.content.Intent;

importandroid.database.Cursor;

importandroid.database.sqlite.SQLiteDatabase;

importandroid.database.sqlite.SQLiteOpenHelper;

//DBOptionsforlogin

publicclassDBOptions{

privatestaticfinalStringDB_NAME="notes.db";

privatestaticfinalStringDB_CREATE="createtablelogininf(nametext,pwdtext)";

{

publicDBHelper(Contextcontext){

super(context,DB_NAME,null,1);

}

@Override

publicvoidonCreate(SQLiteDatabasedb){

//TODOAuto-generatedmethodstub

//建表

db.execSQL(DB_CREATE);

}

@Override

publicvoidonUpgrade(SQLiteDatabasedb,intoldVersion,intnewVersion){

//TODOAuto-generatedmethodstub

db.execSQL("droptableifexistslogininf");

onCreate(db);

}

}

privateContextcontext;

privateSQLiteDatabasedb;

privateDBHelperdbHelper;

publicDBOptions(Contextcontext)

{

this.context=context;

dbHelper=newDBHelper(context);

db=dbHelper.getReadableDatabase();

}

//自己寫的方法,對資料庫進行操作

publicStringgetName()

{

Cursorcursor=db.rawQuery("selectnamefromlogininf",null);

cursor.moveToFirst();

returncursor.getString(0);

}

publicintchangePWD(StringoldP,Stringpwd)

{

ContentValuesvalues=newContentValues();

values.put("pwd",pwd);

returndb.update("logininf",values,"pwd="+oldP,null);

}

}


insert方法插入的一行記錄使用ContentValus存放,ContentValues類似於Map,它提供了put(String key, Xxx value)(其中key為數據列的列名)方法用於存入數據、getAsXxxx(String key)方法用於取出數據

7. 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);

    }

8. 如何在android中用litepal查詢一個已存在的資料庫

其實最傳統的查詢數據的方式當然是使用SQL語句了,Android當中也提供了直接使用原生SQL語句來查詢資料庫表的方法,即SQLiteDatabase中的rawQuery()方法,方法定義如下:publicCursorrawQuery(Stringsql,String[]selectionArgs)其中,rawQuery()方法接收兩個參數,第一個參數接收的就是一個SQL字元串,第二個參數是用於替換SQL語句中佔位符(?)的字元串數組。rawQuery()方法返回一個Cursor對象,所有查詢到的數據都是封閉在這個對象當中的,我們只要一一取出就可以了。

熱點內容
安卓手機要怎麼下載突擊隊ol 發布:2024-11-30 13:03:42 瀏覽:636
修改密碼sql語句 發布:2024-11-30 12:54:54 瀏覽:156
搭建手游用什麼伺服器 發布:2024-11-30 12:54:09 瀏覽:171
四川密碼門鎖在哪裡買 發布:2024-11-30 12:50:29 瀏覽:401
手機編寫腳本軟體 發布:2024-11-30 12:41:02 瀏覽:873
學php如何 發布:2024-11-30 12:36:48 瀏覽:858
家庭電腦改網盤伺服器 發布:2024-11-30 12:32:13 瀏覽:106
電腦伺服器組裝系統 發布:2024-11-30 12:32:11 瀏覽:999
在線顯示wifi密碼是什麼 發布:2024-11-30 12:30:53 瀏覽:727
觸動精靈安卓腳本 發布:2024-11-30 12:30:47 瀏覽:81