欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

Android中的SQL查詢語句LIKE綁定參數(shù)問題解決辦法(sqlite數(shù)據(jù)庫)

 更新時(shí)間:2014年06月12日 08:59:53   投稿:junjie  
這篇文章主要介紹了Android中的SQL查詢語句LIKE綁定參數(shù)問題解決辦法,本文使用的是sqlite數(shù)據(jù)庫,需要的朋友可以參考下

由于考慮到數(shù)據(jù)庫的安全性,不被輕易SQL注入,執(zhí)行查詢語句時(shí),一般不使用直接拼接的語句,而是使用參數(shù)傳遞的方法。然后在使用參數(shù)傳遞的方法中時(shí),發(fā)現(xiàn)當(dāng)使用like方式查詢數(shù)據(jù)時(shí),很容易出現(xiàn)一個(gè)問題。

錯(cuò)誤案例:

復(fù)制代碼 代碼如下:
String myname = "abc";
String sql = "select * from mytable where name like '?%'";
Cursor cursor = db.rawQuery(sql, new String[]{myname};

運(yùn)行提示如下錯(cuò)誤:
復(fù)制代碼 代碼如下:
java.lang.IllegalArgumentException: Cannot bind argument at index 1 because the index is out of range. The statement has 0 parameters.

根據(jù)錯(cuò)誤提示可知,sql語句中的?號(hào)沒有被識(shí)別出來,從而new String[]{myname}沒法替代sql中的?號(hào)。?號(hào)沒有被識(shí)別出來的原因估計(jì)是?號(hào)外有單引號(hào),但是在sql中l(wèi)ike語句的值和%號(hào)需要用引號(hào)圍著。

為了解決sql中?號(hào)無法識(shí)別,必須去掉?號(hào)外的引號(hào),那么%號(hào)也需要去掉。所以,得在后面代替?號(hào)的參數(shù)中添加上%號(hào)。

所以,正確的案例如下:

復(fù)制代碼 代碼如下:

String myname = "abc";
String sql = "select * from mytable where name like ?";
Cursor cursor = db.rawQuery(sql, new String[]{myname+"%"};

可能有人會(huì)問為什么不用添加引號(hào),因?yàn)閰?shù)代替?號(hào)時(shí),自動(dòng)以字符串的形式代替的。

相關(guān)文章

  • Android Studio手動(dòng)配置Gradle的方法

    Android Studio手動(dòng)配置Gradle的方法

    Gradle:Gradle是一個(gè)基于Apache Ant和Apache Maven概念的項(xiàng)目自動(dòng)化建構(gòu)工具。它使用一種基于Groovy的特定領(lǐng)域語言(DSL)來聲明項(xiàng)目設(shè)置,拋棄了基于XML的各種繁瑣配置,本文給大家介紹Android Studio手動(dòng)配置Gradle的方法,一起看看吧
    2017-11-11
  • Android打開淘寶客戶端(手淘)效果及實(shí)現(xiàn)代碼

    Android打開淘寶客戶端(手淘)效果及實(shí)現(xiàn)代碼

    這篇文章主要介紹了Android打開淘寶客戶端(手淘)效果及實(shí)現(xiàn)代碼,非常不錯(cuò),具有參考借鑒價(jià)值,需要的朋友可以參考下
    2018-04-04
  • Android 實(shí)現(xiàn)背景圖和狀態(tài)欄融合方法

    Android 實(shí)現(xiàn)背景圖和狀態(tài)欄融合方法

    下面小編就為大家分享一篇Android 實(shí)現(xiàn)背景圖和狀態(tài)欄融合方法,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過來看看吧
    2018-01-01
  • 詳解Android布局優(yōu)化

    詳解Android布局優(yōu)化

    本篇文章給大家詳細(xì)分析了Android布局優(yōu)化的相關(guān)知識(shí)點(diǎn)以及注意事項(xiàng),對(duì)此有需要的朋友可以參考學(xué)習(xí)下。
    2018-03-03
  • 調(diào)用startService會(huì)拋出IllegalStateException異常解決

    調(diào)用startService會(huì)拋出IllegalStateException異常解決

    這篇文章主要為大家介紹了調(diào)用startService會(huì)拋出IllegalStateException異常解決,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪
    2023-07-07
  • Android動(dòng)態(tài)布局小結(jié)

    Android動(dòng)態(tài)布局小結(jié)

    android動(dòng)態(tài)布局相比靜態(tài)布局,動(dòng)態(tài)布局不用再將xml轉(zhuǎn)變了布局代碼,提高了一定的效率,本篇文章給大家介紹android動(dòng)態(tài)布局小結(jié),對(duì)android動(dòng)態(tài)布局相關(guān)知識(shí)感興趣的朋友一起學(xué)習(xí)吧
    2016-01-01
  • Android自定義View之邊框文字、閃爍發(fā)光文字

    Android自定義View之邊框文字、閃爍發(fā)光文字

    這篇文章主要為大家詳細(xì)介紹了Android自定義View之邊框文字、閃爍發(fā)光文字,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2017-01-01
  • OpenGL Shader實(shí)例分析(3)等待標(biāo)識(shí)效果

    OpenGL Shader實(shí)例分析(3)等待標(biāo)識(shí)效果

    這篇文章主要介紹了OpenGL Shader實(shí)例分析第3篇,等待標(biāo)識(shí)效果,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2019-02-02
  • 淺談Flutter解析JSON三種方式

    淺談Flutter解析JSON三種方式

    這篇文章主要介紹了淺談Flutter解析JSON三種方式,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2021-03-03
  • Android ListView實(shí)現(xiàn)圖文列表顯示

    Android ListView實(shí)現(xiàn)圖文列表顯示

    這篇文章主要為大家詳細(xì)介紹了Android ListView實(shí)現(xiàn)圖文列表顯示,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2019-01-01

最新評(píng)論