频道栏目
首页 > 资讯 > Java > 正文

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

14-10-27        来源:[db:作者]  
收藏   我要投稿
刚开源了一个经过完整测试的Java工具类。目前的代码已经经历了完整的测试,正在申请放到Maven central Repository上。
 

Bean-query

Click Here for English version.

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

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

 

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


//使用 select、from、where、orderBy、desc和asc来组装一个Query,然后执行execute方法来获得结果。
List<>> 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
  }
]


 

相关TAG标签
上一篇:桥接模式Bridge
下一篇:Java程序员的JavaScript学习笔记(8——jQuery选择器)
相关文章
图文推荐

关于我们 | 联系我们 | 广告服务 | 投资合作 | 版权申明 | 在线帮助 | 网站地图 | 作品发布 | Vip技术培训 | 举报中心

版权所有: 红黑联盟--致力于做实用的IT技术学习网站