在刚进入公司的时候,在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框架。的更多相关文章

  1. ORM框架-VB/C#.Net实体代码生成工具(EntitysCodeGenerate)【ECG】4.5

    摘要:VB/C#.Net实体代码生成工具(EntitysCodeGenerate)[ECG]是一款专门为.Net数据库程序开发量身定做的(ORM框架)代码生成工具,所生成的程序代码基于OO.ADO.N ...

  2. 最受欢迎的5款Node.js端到端测试框架

    测试,尤其是自动化测试在现代 WEB 工程中有着非常重要的角色,与交付过程集成良好的自动化测试流程可以在新版发布时帮你快速回归产品功能,也可以充当产品文档.测试因粒度不同又可以分为单元测试.接口测试. ...

  3. unittest单元测试框架前言

    一.在我们没有学习过python语言的时候领导让我们做接口测试 我们都使用工具来做测试,一般常用的如jemeter,postman这些个工具,我来推荐使用postman 这个工具来进行接口测试,有的小 ...

  4. Cypress与TestCafe WebUI端到端测试框架简介

    近期接触了Cypress和TestCafe,两个测试框架都基于Node.js,都不再使用Selenium+WebDriver,而且开箱即用,非常轻量级,就冲着不再使用WebDriver这一点,极大地勾 ...

  5. 避免重复造轮子的UI自动化测试框架开发

    一懒起来就好久没更新文章了,其实懒也还是因为忙,今年上半年的加班赶上了去年一年的加班,加班不息啊,好了吐槽完就写写一直打算继续的自动化开发 目前各种UI测试框架层出不穷,但是万变不离其宗,驱动PC浏览 ...

  6. ABP入门系列(1)——学习Abp框架之实操演练

    作为.Net工地搬砖长工一名,一直致力于挖坑(Bug)填坑(Debug),但技术却不见长进.也曾热情于新技术的学习,憧憬过成为技术大拿.从前端到后端,从bootstrap到javascript,从py ...

  7. 旺财速啃H5框架之Bootstrap(五)

    在上一篇<<旺财速啃H5框架之Bootstrap(四)>>做了基本的框架,<<旺财速啃H5框架之Bootstrap(二)>>篇里也大体认识了bootst ...

  8. Angular企业级开发(5)-项目框架搭建

    1.AngularJS Seed项目目录结构 AngularJS官方网站提供了一个angular-phonecat项目,另外一个就是Angular-Seed项目.所以大多数团队会基于Angular-S ...

  9. Scrapy框架爬虫初探——中关村在线手机参数数据爬取

    关于Scrapy如何安装部署的文章已经相当多了,但是网上实战的例子还不是很多,近来正好在学习该爬虫框架,就简单写了个Spider Demo来实践.作为硬件数码控,我选择了经常光顾的中关村在线的手机页面 ...

随机推荐

  1. Linux基础管道管理

    一.I/O重定向 标准输入,标准输出,标准错误 file descriptors (FD, 文件描述符或Process I/O channels); 进程使用文件描述符来管理打开的文件 [root@l ...

  2. AQS之CountDownLatch、Semaphore、CyclicBarrier

    CountDownLatch A synchronization aid that allows one or more threads to wait until a set of operatio ...

  3. android ——活动

    活动(Activity)主要用于和用户进行交互,是一种可以包含用户界面的组件. 1.手动创建活动 右击com.example.administrator.exp5→New→Activity→Empty ...

  4. java后端开发面经 数据库相关

    小姐姐:怎么理解感情中的付出和回报? 你答:有这样一个故事,讲的是一个小男孩和一个小女孩,这个小男孩呢,用很多好玩石头,而这个小女孩呢,有好多好吃的糖果,有一天,他们相互约定:小男孩用所有的石头交互小 ...

  5. JMeter的JTL大文件解析

    1.背景 不知大家在使用JMeter工具进行性能测试时,是否遇到过JTL结果文件过大导致GUI页面长时间解析无响应的问题.这种情况往往出现在稳定性测试场景下,此时的JTL文件大小可能已经达到G级别了. ...

  6. 第一次Git使用以及码云(Gitee)

    下载安装Git,官网下载地址https://git-scm.com/downloads,我用的是Win10版,下载好后一路默认安装,安装时会给你自动添加环境变量,完成后打开cmd,输入git --ve ...

  7. 神经网络优化算法:Dropout、梯度消失/爆炸、Adam优化算法,一篇就够了!

    1. 训练误差和泛化误差 机器学习模型在训练数据集和测试数据集上的表现.如果你改变过实验中的模型结构或者超参数,你也许发现了:当模型在训练数据集上更准确时,它在测试数据集上却不⼀定更准确.这是为什么呢 ...

  8. R 包 rgl 安装失败, 报错 X11 not found but required, configure aborted 及解决方法

    R 包 rgl 安装失败, X11 not found but required, configure aborted * installing *source* package ‘rgl’ ... ...

  9. Python模块之netmiko

    一.简介 此模块用于简化paramiko与网络设备之间的ssh连接,可在windows与Unix平台使用 二.目前支持的设备 (2019.03.07) Regularly tested Arista ...

  10. Coablt strike官方教程中文版

    安装和设置 系统要求 Cobalt Strike的最低系统要求 2 GHz +以上的cpu 2 GB RAM 500MB +可用空间 在Amazon的EC2上,至少使用较高核数的CPU(c1.medi ...