Bean-Query 一个把对象转换为Map的Java工具库
刚开源了一个经过完整測试的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工具库的更多相关文章
- Java中将对象转换为Map的方法
将对象转换为Map的方法,代码如下: /** * 将对象转成TreeMap,属性名为key,属性值为value * @param object 对象 * @return * @throws Illeg ...
- 使用 js 实现一个中文自动转换成拼音的工具库
使用 js 实现一个中文自动转换成拼音的工具库 中文 => zhong-wen 应用场景 SEO 友好, URL 自动转换 blogs 发布文章,自动化部署,自动生成 url 的 path (时 ...
- Bean Query 第一个版本号(1.0.0)已公布
BeanQuery 是一个把对象转换为Map的Java工具库. 支持选择Bean中的一些属性.对结果进行排序和依照条件查询. 不只能够作用于顶层对象,也能够作用于子对象.很多其它具体的介绍能够看我的博 ...
- java将对象转map,map转对象工具类
/** * 将map转换为一个对象 * * @param map * @param beanClass * @return * @throws Exception */ public static O ...
- Json:Java对象和Json文本转换工具类
Json 是一个用于 Java 对象 和 Json 文本 相互转换的工具类. 安装 下载源码 git clone https://github.com/njdi/durian.git 编译源码 cd ...
- JSon_零基础_005_将po(bean)对象转换为JSon格式的对象字符串,返回给界面
将po(bean)对象转换为JSon格式的对象字符串,返回给界面 导入jar包: 编写po(bean)类: package com.west.webcourse.po; /** * 第01步:编写be ...
- javabean转换为map对象
在调用第三方接口发现对方使用map进行接收(不包括秘钥等),将bean类属性转换为map,直接贴代码: /** * JavaBean对象转化成Map对象 * * @param javaBean */p ...
- Hibernate三种状态;query查询;ResultTransformer转换为pojo对象;能够将query语句写在xml中;Criteria查询;ProjectionList总和/f分组等函数
版权声明:本文为博主原创文章,未经博主同意不得转载. https://blog.csdn.net/u010026901/article/details/24256091 Session操作过程中的po ...
- JSon_零基础_003_将Map集合对象转换为JSon格式的对象字符串,返回给界面
将Map集合对象转换为JSon格式的对象字符串,返回给界面 需导入的jar包: 编写servlet: package com.west.webcourse.servlet; import java.i ...
随机推荐
- 学习笔记之NodeJs基本操作
nodejs安装见文章:windows下安装node.js及less 运行js文件:node xxx.js 调用http模块,并指定端口为3000,向客户端输出<h1>Node.js< ...
- iOS开发- 查询项目代码行数
...事实上, 这功能也没什么用. 就是查询一个项目总的代码行数. 玩玩倒是能够. 方法: 在终端以下依次输入: cd 项目文件 find . "(" -name "*. ...
- File Templates for web.xml & web-fragment.xml (Servlet 2.3, 2.4, 2.5 + 3.0)
As I sometimes need these, I have compiled a list of the valid headers of the web.xml and web-fragme ...
- css盒模型和块级、行内元素深入理解
盒模型是CSS的核心知识点之一,它指定元素如何显示以及如何相互交互.页面上的每个元素都被看成一个矩形框,这个框由元素的内容.内边距.边框和外边距组成,需要了解的朋友可以深入参考下 一.CSS盒模型 盒 ...
- 内省(一)之Introspector、BeanInfo、PropertyDescriptor
内省(Introspector)是专门用来操作JavaBean属性的.不是所有的字段(Field)都能被称之为属性,只有某些字段具有getXXX或setXXX方法的才能称之为属性,当然要称为是一个Be ...
- 【HTML】让<pre>标签文本自动换行
利用<pre></pre>这个标签可以将其包起来的文字排版.格式,原封不动的呈现出来. 也就是说你输入的东西被原封不动的输出,包括你输入的空格之类的,不用 和<BR> ...
- 14.2.1 MySQL and the ACID Model
14.2 InnoDB Concepts and Architecture InnoDB 概念和结构体系: 14.2.1 MySQL and the ACID Model 14.2.2 InnoDB ...
- asp.net mvc 导出表格
适合使用的场合: .net 中从前台中的table导出成excel文件,兼容各种浏览器. 使用工具: org.in2bits.MyXls.dll 从前台获取表格的thead和表格的tbody,将其转化 ...
- 《学习opencv》笔记——矩阵和图像处理——cvMinManLoc,cvMul,cvNot,cvNorm and cvNormalize
矩阵和图像的操作 (1)cvMinManLoc函数 其结构 void cvMinMaxLoc(//取出矩阵中最大最小值 const CvArr* arr,//目标矩阵 double* min_val, ...
- OSX: 使用命令行对FileVault2分区恢复
FileVault 2必须有Recovery HD分区,因为它依赖于它作为系统初启动.如果今后什么时候或者误操作删除了Recovery HD分区,那么你的机器就无法启动鸟. 是否使用苹果的办法重新获得 ...