刚开源了一个经过完整測试的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. lua中打印所以类型功能实现table嵌套table

    lua中打印所以类型功能实现 本人測试 number.string.bool.nil.table嵌套table.userdata没问题 共享一下有什么问题请拍砖 代码例如以下 cclog = func ...

  2. Spark SQL 源代码分析之 In-Memory Columnar Storage 之 in-memory query

    /** Spark SQL源代码分析系列文章*/ 前面讲到了Spark SQL In-Memory Columnar Storage的存储结构是基于列存储的. 那么基于以上存储结构,我们查询cache ...

  3. Eclipse用法和技巧十七:覆盖父类方法

    在学校里面学习java,遇到访问权限修饰符一直停留在public是公有的,外面可以访问:protected是对子类可见的,外部不可以访问:private仅在本类中可见.工作之后,接触到了java代码多 ...

  4. windows 2003 域控制器(AD)的常规命令行操作以及修复

    查询服务器的角色 Netdom query fsmo 强制升级操作主机角色(如果两台DC都无损,可以直接用图形模式传送,这里指的是一台DC出问题,另一台强制升级占用角色的情况) Ntdsutil Ro ...

  5. 圆角和圆形ImageView

    ※效果 ※代码 /** * 转换图片成圆形 * * @param bitmap * 传入Bitmap对象 * @return */ public Bitmap toRoundBitmap(Bitmap ...

  6. 第四天学习内容 if switch for 的练习

    using System;using System.Collections.Generic;using System.Linq;using System.Text;using System.Threa ...

  7. 使用JDBC处理数据库大容量数据类型

    在本文将介绍如何使用JDBC操作MySQL数据库对于大容量数据类型的读取.在之前的博客中已经介绍了如何使用JDBC来操作数据库对各种数据的增删改查,那么大容量数据类型的数据操作又为何不同呢. 原因在于 ...

  8. libcurl编程,整整17篇

    http://www.cnblogs.com/lidabo/category/639633.html

  9. 快速排序算法之我见(附上C代码)

    因为<The C Programming Language>一书中有一个练习,需要用到快速排序,所以又复习了一下,感觉收获颇多,故而分享之. 快速排序的核心是一种 divide and c ...

  10. 【玩转cocos2d-x之四十】怎样在Cocos2d-x 3.0中使用opengl shader?

    有小伙伴提出了这个问题.事实上GLProgramCocos2d-x引擎自带了.全然能够直接拿来用. 先上图吧. 使用opengl前后的对照: watermark/2/text/aHR0cDovL2Js ...