Ⅰ.前言

      快两个月没有写文章了😂,网站都快被遗弃了,最近进入新公司了,学习了一下公司框架bosent,做做笔记。

Ⅱ.吐槽

      公司的框架居然没有用主流的ORM框架,用的还是xml配置的,所有东西都用xml配置,这就是所谓的高可配置吧🤣。后面再慢慢吐槽了

Ⅲ.正题

1.普通查询

      查询主要用到了com.bosent.entity.util.EntityQuery类。下面展示一个普通的查询,代码如下

List‹GenericValue› list= EntityQuery.use(ctx.getDelegator())
.select("cloumn1", "cloumn2") //这一行不写就相当于select * from tableName
.from("tableName")          //xml中定义的表名
.where(EntityCondition.makeCondition("cloumn3", EntityOperator.EQUALS, "value"))  //可以多重条件查询
.orderBy("cloumn4" + " DESC")   //也可以定义多重条件  加上" DESC" 相当于倒序 注意前面有个空格
.queryList();              //全部查询出来  也可以分页查询

2.多重条件查询

      多重条件查询也是使用EntityCondition类的makeCondition()的各种重载方法,排序也可以多条件排序。

EntityCondition entityCondition1= EntityCondition.makeCondition("cloumn3", EntityOperator.EQUALS, "value1");
EntityCondition entityCondition2= EntityCondition.makeCondition("cloumn4", EntityOperator.EQUALS, "value2");
List‹GenericValue› entityConditionList=new ArrayList(){{
          add(entityCondition1);
          add(entityCondition2);
       }};
EntityCondition entityCondition= EntityCondition.makeCondition(entityConditionList, EntityOperator.AND);

List‹GenericValue› list= EntityQuery.use(ctx.getDelegator())
         .from("tableName")        //xml中定义的表名
         .where(entityCondition)  //可以多重条件查询
         .orderBy("cloumn4" + " DESC","cloumn5") //也可以定义多重条件  加上" DESC" 相当于倒序 注意前面有个空格
         .queryList();//全部查询出来  也可以分页查询

3.分页查询

      一般来说,查询类的服务最好都用分页查询,这样会减少OOM的发生及减少内存占用。

PagedList‹GenericValue› list = EntityQuery.use(ctx.getDelegator())
         .select("cloumn1", "cloumn2") //这一行不写就相当于select * from tableName
         .from("tableName") //xml中定义的表名
         .where(EntityCondition.makeCondition("cloumn3", EntityOperator.EQUALS, "value")) //可以多重条件查询
         .orderBy("cloumn4" + " DESC") //也可以定义多重条件  加上" DESC" 相当于倒序 注意前面有个空格
         .cursorScrollSensitive()
         .queryPagedList(0, 5);  //分页查询
List‹GenericValue› genericValueList = list.getData();

Ⅳ.结尾

      简单的查询就这样了,后续可能会有更高阶的吧😁。