java的Query库_Bean-Query 一个把对象转换为Map的Java工具库

刚开源了一个经过完整测试的Java工具类。

地址如下:

https://github.com/Jimmy-Shi/bean-query

使用说明如下:

Bean-query

Click Here for English version.

BeanQuery 是一个把对象转换为Map的Java工具库。支持选择Bean中的一些属性,对结果进行排序和按照条件查询。不仅仅可以作用于顶层对象,也可以作用于子对象。

BeanQuery的使用非常简单也很直接,例子代码如下:

1 //静态导入BeanQuery2 import static cn.jimmyshi.beanquery.BeanQuery.*;

3

4

5 //使用 select、from、where、orderBy、desc和asc来组装一个Query,然后执行execute方法来获得结果。6 List> result = select("price,name,mainAuthor.name as mainAuthorName")

7     .from(bookCollection)

8     .where(

9         //for books name is Book2 or starts with Book110         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"

}

]

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值