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

地址例如以下:

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

使用说明例如以下:

Bean-query

Click Here for English version.

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

BeanQuery的使用非常easy也非常直接。样例代码例如以下:

/静态导入BeanQuery
import static cn.jimmyshi.beanquery.BeanQuery.*; //使用 select、from、where、orderBy、desc和asc来组装一个Query。然后运行execute方法来获得结果。 List<Map<String, Object>> result = select("price,name,mainAuthor.name as mainAuthorName")
.from(bookCollection)
.where(
//for books name is Book2 or starts with Book1
anyOf(
value("name", startsWith("Book1")),
value("name", is("Book2"))
),
//for books price between (53,65)
allOf(
value("price", greaterThan(53d)),
value("price",lessThan(65d))
)
)
.orderBy("name").desc()
.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"
}
]

Bean-Query 一个把对象转换为Map的Java工具库的更多相关文章

  1. Java中将对象转换为Map的方法

    将对象转换为Map的方法,代码如下: /** * 将对象转成TreeMap,属性名为key,属性值为value * @param object 对象 * @return * @throws Illeg ...

  2. 使用 js 实现一个中文自动转换成拼音的工具库

    使用 js 实现一个中文自动转换成拼音的工具库 中文 => zhong-wen 应用场景 SEO 友好, URL 自动转换 blogs 发布文章,自动化部署,自动生成 url 的 path (时 ...

  3. Bean Query 第一个版本号(1.0.0)已公布

    BeanQuery 是一个把对象转换为Map的Java工具库. 支持选择Bean中的一些属性.对结果进行排序和依照条件查询. 不只能够作用于顶层对象,也能够作用于子对象.很多其它具体的介绍能够看我的博 ...

  4. java将对象转map,map转对象工具类

    /** * 将map转换为一个对象 * * @param map * @param beanClass * @return * @throws Exception */ public static O ...

  5. Json:Java对象和Json文本转换工具类

    Json 是一个用于 Java 对象 和 Json 文本 相互转换的工具类. 安装 下载源码 git clone https://github.com/njdi/durian.git 编译源码 cd ...

  6. JSon_零基础_005_将po(bean)对象转换为JSon格式的对象字符串,返回给界面

    将po(bean)对象转换为JSon格式的对象字符串,返回给界面 导入jar包: 编写po(bean)类: package com.west.webcourse.po; /** * 第01步:编写be ...

  7. javabean转换为map对象

    在调用第三方接口发现对方使用map进行接收(不包括秘钥等),将bean类属性转换为map,直接贴代码: /** * JavaBean对象转化成Map对象 * * @param javaBean */p ...

  8. Hibernate三种状态;query查询;ResultTransformer转换为pojo对象;能够将query语句写在xml中;Criteria查询;ProjectionList总和/f分组等函数

    版权声明:本文为博主原创文章,未经博主同意不得转载. https://blog.csdn.net/u010026901/article/details/24256091 Session操作过程中的po ...

  9. JSon_零基础_003_将Map集合对象转换为JSon格式的对象字符串,返回给界面

    将Map集合对象转换为JSon格式的对象字符串,返回给界面 需导入的jar包: 编写servlet: package com.west.webcourse.servlet; import java.i ...

随机推荐

  1. Cocos2dx系列笔记7:一个简单的跑酷游戏《萝莉快跑》的消化(附下载)

    懒骨头(http://blog.csdn.com/iamlazybone) 或许有天 我们羡慕和崇拜的人 因为我们的努力 也会来了解我们 说不定 还会成为好友 骨头喜欢这样与哲哲共勉 多少个夜晚 一张 ...

  2. IntelliJ Idea 经常使用快捷键列表

    Alt+回车 导入包,自己主动修正Ctrl+N   查找类Ctrl+Shift+N 查找文件Ctrl+Alt+L  格式化代码 Ctrl+Alt+O 优化导入的类和包Alt+Insert 生成代码(如 ...

  3. 用WebCollector制作一个爬取《知乎》并进行问题精准抽取的爬虫(JAVA)

    简单介绍: WebCollector是一个无须配置.便于二次开发的JAVA爬虫框架(内核),它提供精简的的API.仅仅需少量代码就可以实现一个功能强大的爬虫. 怎样将WebCollector导入项目请 ...

  4. Swift - 使用CoreLocation获取设备方向(真实方向,磁极方向)

    CoreLocation这个定位框架除了可以获取设备的位置数据,还可以获取设备的方向(可以用来实现指南针功能等). 1,CLHeading对象通过一组属性提供航向相关数据: magneticHeadi ...

  5. ZYNQ-7000 Unable to connect to ps7_cortexa9 解决方案

    图1 开发工具:Xilinx SDk 14.4(基于Eclipse,ISE suite 14.4组件之一) 开发板:Xilinx ZYNQ-7000 zc702 rev 1.0(注意:这个板子的版本说 ...

  6. RMAN 备份

    backup database; --备份整库 backup database format '\xxxxxx\xxx_%U'; --备份整库到指定路劲 backup tablespace users ...

  7. linux shell中的单引号与双引号的区别(看完就不会有引号的疑问了)(转)

    tips: ============================= IFS - LINUX字段分隔符,内部字段分隔符 IFS(Internal Field Seperator)在Linux的she ...

  8. cell中button怎么得到对应cell的indexpath 以及关于UITableViewCellContentView的问题

    ============================================================ 博文原创,转载请声明出处 电子咖啡-专注于移动互联网 ============ ...

  9. 百度地图new BMap.LocalCity() 问题

    <html> <head> <meta http-equiv="Content-Type" content="text/html; char ...

  10. 14.2.5.7 Physical Row Structure 物理数据结构:

    14.2.5.7 Physical Row Structure 物理数据结构: InnoDB物理记录结构依赖行格式 在表创建的时候, 默认, InnoDB 使用Antelope 文件存储格式和它的压缩 ...