紫風亂寫

          除了他眼前的屏幕,這個人什么也沒看見。
          被周圍的電腦簇擁著,他只知道他所創造的現實,但又意識到那是虛幻。
          他已經超越了技術。也超越了機器。
          posts - 62, comments - 93, trackbacks - 0, articles - 0
            BlogJava :: 首頁 :: 新隨筆 :: 聯系 :: 聚合  :: 管理

          日歷

          <2014年10月>
          2829301234
          567891011
          12131415161718
          19202122232425
          2627282930311
          2345678

          博友

          收藏的地址

          積分與排名

          • 積分 - 160228
          • 排名 - 380

          最新評論

          剛開源了一個經過完整測試的Java工具類。
          地址如下:
          https://github.com/Jimmy-Shi/bean-query

          使用說明如下:

          Bean-query

          Click Here for English version.

          BeanQuery 是一個把對象轉換為Map的Java工具庫。支持選擇Bean中的一些屬性,對結果進行排序和按照條件查詢。不僅僅可以作用于頂層對象,也可以作用于子對象。

          BeanQuery的使用非常簡單也很直接,例子代碼如下:

           1 //靜態導入BeanQuery
           2 import static cn.jimmyshi.beanquery.BeanQuery.*;
           3 
           4 
           5 //使用 select、from、where、orderBy、desc和asc來組裝一個Query,然后執行execute方法來獲得結果。
           6 List<Map<String, Object>> result = select("price,name,mainAuthor.name as mainAuthorName")
           7     .from(bookCollection)
           8     .where(
           9         //for books name is Book2 or starts with Book1
          10         anyOf(
          11             value("name", startsWith("Book1")),
          12             value("name", is("Book2"))
          13         ),
          14         //for books price between (53,65)
          15         allOf(
          16             value("price", greaterThan(53d)),
          17             value("price",lessThan(65d))
          18         )
          19     )
          20     .orderBy("name").desc()
          21     .execute();


          在上面的例子中,bookCollection的內容如下所示(json格式)

          [
            {
              "price":55.55,
              "name":"Book1",
              "mainAuthor":{
                "name":"Book1-MainAuthor",
                "address":{
                  "address":"Shenzhen Guangdong China",
                  "postCode":"518000"
                },
                "birthDate":"1982-01-30T14:52:39"
              }
            },
            {
              "price":52.55,
              "name":"Book12",
              "mainAuthor":{
                "name":"Book1-MainAuthor",
                "address":{
                  "address":"Shenzhen Guangdong China",
                  "postCode":"518000"
                },
                "birthDate":"1982-01-30T14:52:39"
              }
            },
            {
              "price":53.55,
              "name":"Book13",
              "mainAuthor":{
                "name":"Book13-MainAuthor",
                "address":{
                  "address":"Shenzhen Guangdong China",
                  "postCode":"518000"
                },
                "birthDate":"1982-01-30T14:52:39"
              }
            },
            {
              "price":60.0,
              "name":"Book14",
              "mainAuthor":{
                "name":"Book14-MainAuthor",
                "address":{
                  "address":"Shenzhen Guangdong China",
                  "postCode":"518000"
                },
                "birthDate":"1982-01-30T14:52:39"
              }
            },
            {
              "price":50.55,
              "name":"Book15",
              "mainAuthor":{
                "name":"Book1-MainAuthor",
                "address":{
                  "address":"Shenzhen Guangdong China",
                  "postCode":"518000"
                },
                "birthDate":"1982-01-30T14:52:39"
              }
            },
            {
              "price":77.77,
              "name":"Book3",
              "mainAuthor":{
                "name":"Book3-MainAuthor",
                "address":{
                  "address":"Shenzhen Guangdong China",
                  "postCode":"518005"
                },
                "birthDate":"1982-01-30T14:52:39"
              }
            }
            ,
            {
              "price":66.66,
              "name":"Book2",
              "mainAuthor":{
                "name":"Book2-MainAuthor",
                "address":{
                  "address":"Shenzhen Guangdong China",
                  "postCode":"518005"
                },
                "birthDate":"1982-01-30T14:52:39"
              }
            }
          ]


          執行完之后,則result的內容如下所示(json格式)

          [
            {
              "price":60.0,
              "name":"Book14",
              "mainAuthorName":"Book14-MainAuthor"
            },
            {
              "price":53.55,
              "name":"Book13",
              "mainAuthorName":"Book13-MainAuthor"
            },
            {
              "price":55.55,
              "name":"Book1",
              "mainAuthorName":"Book1-MainAuthor"
            }
          ]

          評論

          # re: Bean-Query 一個把對象轉換為Map的Java工具庫  回復  更多評論   

          2014-10-27 11:20 by 網購商城
          文章不錯,謝謝分享

          # re: Bean-Query 一個把對象轉換為Map的Java工具庫  回復  更多評論   

          2014-10-27 11:47 by java論壇
          什么時候可以用?

          # re: Bean-Query 一個把對象轉換為Map的Java工具庫  回復  更多評論   

          2014-10-27 23:37 by Justfly Shi
          @java論壇

          現在已經是好使的了,不過還沒有獲得發布到Maven central repository上的許可。

          # re: Bean-Query 一個把對象轉換為Map的Java工具庫  回復  更多評論   

          2014-10-29 02:27 by Justfly Shi
          @java論壇

          現在已經可以用了,詳情請查看
          http://www.aygfsteel.com/justfly/archive/2014/10/29/419152.html

          # re: Bean-Query 一個把對象轉換為Map的Java工具庫[未登錄]  回復  更多評論   

          2014-11-11 17:38 by changedi
          很贊啊,有空去研讀下源碼

          # re: Bean-Query 一個把對象轉換為Map的Java工具庫[未登錄]  回復  更多評論   

          2014-11-14 11:24 by Justfly Shi
          @下巴長痘痘是什么原因
          現在已經可以用了。
          主站蜘蛛池模板: 淮安市| 应城市| 富川| 石棉县| 清原| 延川县| 张家川| 库车县| 京山县| 台南县| 紫金县| 廊坊市| 武平县| 喜德县| 东阿县| 洛宁县| 阳山县| 吉隆县| 黑龙江省| 武陟县| 奉新县| 凯里市| 遂平县| 芦溪县| 九台市| 蚌埠市| 鄯善县| 商城县| 安国市| 毕节市| 庄河市| 尖扎县| 岳池县| 华安县| 荔波县| 怀仁县| 抚松县| 松滋市| 蓬溪县| 霍城县| 读书|