紫風(fēng)亂寫

          除了他眼前的屏幕,這個(gè)人什么也沒看見。
          被周圍的電腦簇?fù)碇恢浪鶆?chuàng)造的現(xiàn)實(shí),但又意識(shí)到那是虛幻。
          他已經(jīng)超越了技術(shù)。也超越了機(jī)器。
          posts - 62, comments - 93, trackbacks - 0, articles - 0
            BlogJava :: 首頁 :: 新隨筆 :: 聯(lián)系 :: 聚合  :: 管理
          剛開源了一個(gè)經(jīng)過完整測試的Java工具類。
          地址如下:
          https://github.com/Jimmy-Shi/bean-query

          使用說明如下:

          Bean-query

          Click Here for English version.

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

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

           1 //靜態(tài)導(dǎo)入BeanQuery
           2 import static cn.jimmyshi.beanquery.BeanQuery.*;
           3 
           4 
           5 //使用 select、from、where、orderBy、desc和asc來組裝一個(gè)Query,然后執(zhí)行execute方法來獲得結(jié)果。
           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的內(nèi)容如下所示(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"
              }
            }
          ]


          執(zhí)行完之后,則result的內(nèi)容如下所示(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"
            }
          ]

          評(píng)論

          # re: Bean-Query 一個(gè)把對(duì)象轉(zhuǎn)換為Map的Java工具庫  回復(fù)  更多評(píng)論   

          2014-10-27 11:20 by 網(wǎng)購商城
          文章不錯(cuò),謝謝分享

          # re: Bean-Query 一個(gè)把對(duì)象轉(zhuǎn)換為Map的Java工具庫  回復(fù)  更多評(píng)論   

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

          # re: Bean-Query 一個(gè)把對(duì)象轉(zhuǎn)換為Map的Java工具庫  回復(fù)  更多評(píng)論   

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

          現(xiàn)在已經(jīng)是好使的了,不過還沒有獲得發(fā)布到Maven central repository上的許可。

          # re: Bean-Query 一個(gè)把對(duì)象轉(zhuǎn)換為Map的Java工具庫  回復(fù)  更多評(píng)論   

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

          現(xiàn)在已經(jīng)可以用了,詳情請(qǐng)查看
          http://www.aygfsteel.com/justfly/archive/2014/10/29/419152.html

          # re: Bean-Query 一個(gè)把對(duì)象轉(zhuǎn)換為Map的Java工具庫[未登錄]  回復(fù)  更多評(píng)論   

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

          # re: Bean-Query 一個(gè)把對(duì)象轉(zhuǎn)換為Map的Java工具庫[未登錄]  回復(fù)  更多評(píng)論   

          2014-11-14 11:24 by Justfly Shi
          @下巴長痘痘是什么原因
          現(xiàn)在已經(jīng)可以用了。
          主站蜘蛛池模板: 垣曲县| 瑞昌市| 乌兰浩特市| 灵丘县| 疏附县| 沐川县| 鄂州市| 清镇市| 健康| 郎溪县| 全州县| 乌海市| 洪泽县| 松原市| 宁海县| 枞阳县| 惠州市| 邓州市| 洪泽县| 奎屯市| 平凉市| 新龙县| 万盛区| 辽阳市| 台南县| 嘉禾县| 射阳县| 云龙县| 苍山县| 海兴县| 隆子县| 藁城市| 林州市| 保定市| 松阳县| 红原县| 黎平县| 三原县| 铜川市| 怀安县| 赤城县|