Ⅰ.前言
快两个月没有写文章了😂,网站都快被遗弃了,最近进入新公司了,学习了一下公司框架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();
Ⅳ.结尾
简单的查询就这样了,后续可能会有更高阶的吧😁。
Comments | NOTHING