首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
您现在的位置: 程式碼之家 >> 編程語言 >  >> 更多程式語言 >> 程式設計綜合問答

Android SQLite 參數綁定:int 值優雅轉 String 的三種寫法

     編輯:程式設計綜合問答

場景

int value = 10;
Cursor cursor = db.query("TABLE_X", new String[]{"COL_A", "COL_B"},
        "COL_C = ?", new String[]{Integer.toString(value)}, null, null, null);

求除 Integer.toString() 外的簡潔寫法。

三種推薦寫法

寫法代碼優點適用場景
字符串拼接(最簡)new String[]{"" + value}零對象創建、可讀性高單參數、日常開發
String.valueOf(標準庫)new String[]{String.valueOf(value)}null 安全、語義明確、JDK 源碼優化通用工具方法、代碼規範要求
StringBuilder(高性能批量)new String[]{new StringBuilder().append(value).toString()}循環大量拼接避免臨時對象批量構建參數數組、高頻調用

原理解析

  • "" + value → 編譯器優化為 StringBuilder.append(value).toString()。
  • String.valueOf(int) 內部調用 Integer.toString(int),**無額外開銷**。
  • SQLite query 參數數組**必須為 String[]**,底層會按 TEXT 綁定,數據庫引擎自動按列親和性轉換(INTEGER 親和性列會自動 CAST)。

進階:類型安全封裝

public static String[] toStrArray(Object... args) {
    String[] arr = new String[args.length];
    for (int i = 0; i < args.length; i++) {
        arr[i] = String.valueOf(args[i]);
    }
    return arr;
}

// 調用
cursor = db.query("TABLE_X", cols, "COL_C = ? AND COL_D = ?", 
        toStrArray(value1, value2), null, null, null);

總結

**"" + value 最簡潔**,String.valueOf() 最規築。SQLite 參數綁定本質是文本化,無需擔心類型轉換性能,數據庫引擎會處理親和性轉換。

  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved