<kbd id="afajh"><form id="afajh"></form></kbd>
<strong id="afajh"><dl id="afajh"></dl></strong>
    <del id="afajh"><form id="afajh"></form></del>
        1. <th id="afajh"><progress id="afajh"></progress></th>
          <b id="afajh"><abbr id="afajh"></abbr></b>
          <th id="afajh"><progress id="afajh"></progress></th>

          aSQLite+數(shù)據(jù)庫工具包

          聯(lián)合創(chuàng)作 · 2023-09-24 22:38

          aSQLite+ 是一個小巧的數(shù)據(jù)庫工具包,正如其名字的意思,定位于為Android SQLite數(shù)據(jù)庫添加一些實用的功能。提供相當(dāng)多便利的方法幫助開發(fā)人員拼接和執(zhí)行增刪改查的SQL語句。

          Android的核心類庫也提供了一些生成SQL語句,執(zhí)行SQL操作的工具類,但基本上都不太實用,體現(xiàn)在方法的簽名眾多,調(diào)用后仍然到開發(fā)者做游標(biāo)關(guān)閉或數(shù)據(jù)庫關(guān)閉等非業(yè)務(wù)邏輯的操作。

          假設(shè)你想生成以下的一條SQL語句:

          SELECT product_id, product_name FROM Products WHERE price >= 10 ORDER BY price DESC LIMIT 10

          如果使用Android SQLite類庫來實現(xiàn),大致寫法如下:

          String sql = android.database.sqlite.SQLiteQueryBuilder.buildQueryString(false,
                  "Products", new String[]{"product_id", "product_name"}, "price >= 10",
                  null, null, "price DESC", "10");

          當(dāng)然,還有ORM或直接用"+"操作符連接各個子句的字符串拼接方法。個人認(rèn)為,在中小型的Android應(yīng)用中使用ORM純屬殺雞用牛刀,里面的反射操作也會對主線程產(chǎn)生性能影響。至于傳統(tǒng)的用"+"拼接字符串,更是增大開發(fā)與維護(hù)的成本。那,以上的SQL如果使用aSQLite+將會是如何做?

          Statement statement = QueryStatement.produce("product_id", "product_name")
                  .from("Products").where("price").egt(10).orderBy("price").desc().limit(10);
          String sql = statement.toString();

          aSQLite+通過將每個SQL關(guān)鍵字或子句映射為方法,基本覆蓋了全部的語法,實現(xiàn)SQL的簡易拼接,使代碼更清晰易懂,便于維護(hù),大大簡化了SQL的構(gòu)造。開發(fā)者可以通過github上的眾多示例查看其完善的功能。

          另外,aSQLite+實現(xiàn)了一個名為DBOverseer.java的類,用于執(zhí)行生成的SQL語句,使得開發(fā)者可以用兩三行以內(nèi)的代碼實現(xiàn)提取整數(shù)、字符串、列表、分類列表、反射實例,執(zhí)行插入、更新,批量操作。

          項目內(nèi)提供詳細(xì)的代碼注釋,外加覆蓋所有功能的測試用例,還有Maven及Jar包等不同的集成方式可供選擇。歡迎開發(fā)者試用并提供測試意見。

          瀏覽 18
          點贊
          評論
          收藏
          分享

          手機(jī)掃一掃分享

          編輯 分享
          舉報
          評論
          圖片
          表情
          推薦
          點贊
          評論
          收藏
          分享

          手機(jī)掃一掃分享

          編輯 分享
          舉報
          <kbd id="afajh"><form id="afajh"></form></kbd>
          <strong id="afajh"><dl id="afajh"></dl></strong>
            <del id="afajh"><form id="afajh"></form></del>
                1. <th id="afajh"><progress id="afajh"></progress></th>
                  <b id="afajh"><abbr id="afajh"></abbr></b>
                  <th id="afajh"><progress id="afajh"></progress></th>
                  亚洲青娱乐第一区 | 亚洲无码免费观看视频 | 日本在线视频精品 | 亚洲第一页一页 | 99久久精品免费看国产交换 |