eql框架。
Posted xdsuannai
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了eql框架。相关的知识,希望对你有一定的参考价值。
在刚进入公司的时候,在service层的框架用的是eql,是公司内的大佬封装的,作为一个小白,真的是折磨。公司内没有任何的文档,只能靠着自己一步一步的摸索。
后来用习惯了,发现这个框架确实有自己的独到之处。
首先在resource将先建一个文件eql-DEFAULT.properties ,并对数据库连接信息(如URL,密码和用户名)进行一些更改(mysql和oracle都可以使用eql)
driver=oracle.jdbc.driver.OracleDriver
url=jdbc:oracle:thin:@127.0.0.1:49161:xe
user=system
password=system
再创建一个.eql文件(com/test/EqlDemo.eql)
创建一个类(com/test/EqlDemo.java)
运行结果如下:
在java代码里的demo对应eql文件里的demo,从这一步做到了映射
以上就是最简单的一个示例, 在平时工作中操作sql语句的完整代码应该如下:
new Eql().useSqlFile(EQL_FILE).selectFirst("demo2").params().returnType().execute();
在returnType里不写入任何返回值时,selectFirst可以返回的类型有string,map,bean。且返回的是第一条记录。除了selectFirst外查询的代码还有一个select。如下:
new Eql().useSqlFile(EQL_FILE).select("demo2").params().returnType().execute();
该方法返回的类型是List , List<Map> ,List<Bean>等,总而言之,返回的是list类型
eql中映射方式(参数params)
List<Map> applyDetail = new Eql(MonitorConst.DS_MALL.PROC_ORACLE).useSqlFile(EQL_FILE)
.select("queryApplyNameDetail")
.params(RMap.asMap("postCityNameAddShi", postCityNameAddShi))
.execute();
eql文件中参数写法如下:
AND C.CITY_NAME = #postCityNameAddShi# 或者 List<Map> applyDetail = new Eql(MonitorConst.DS_MALL.PROC_ORACLE).useSqlFile(EQL_FILE) .select("queryApplyNameDetail") .params(postCityNameAddShi) .execute(); eql文件中参数写法如下: AND C.CITY_NAME = #1#
for循环 --isNotEmpty productInfos AND T.PRODUCT_ID IN --for item=item index=index collection=productInfos open=( separator=, close=) #item# --end --end 其中productInfos是前段传过来的一个数组,item代表的是productInfos数组里的各个成员,就是一个别名,而index则是一个迭代的次数,简单的说就是找item找了几次
除了以上的例子,eql文件还提供了if,switch等动态传参,分页支持等等。
参考文档:https://github.com/bingoohuang/eql/blob/master/ChineseReadme.md
以上是关于eql框架。的主要内容,如果未能解决你的问题,请参考以下文章
sql поискпочтовыхадресовконтрагента#EQL