在刚进入公司的时候,在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. Filebeat6.3文档—Log input配置

    Filebeat6.3文档-Log input配置 paths 日志加载的路径.例如加载某一子目录级别下面路径的日志:/var/log/*/*.log.这表示会去加载以.log结尾的/var/log下 ...

  2. Node.js 环境搭建及简单应用

    Node.js 是一个基于 Chrome V8 引擎的 JavaScript 运行环境.Node.js 使用了一个事件驱动.非阻塞式 I/O 的模型.如果你想创建自己的服务,那么Node.js是一个非 ...

  3. Java学习多线程第一天

    内容介绍 Thread 线程创建 线程池 线程状态图 1 多线程 1.1     多线程介绍 学习多线程之前,我们先要了解几个关于多线程有关的概念. 进程:进程指正在运行的程序.确切的来说,当一个程序 ...

  4. 【0806 | Day 9】三张图带你了解数据类型分类和Python深浅拷贝

    一.数据类型分类 二.Python深浅拷贝

  5. c语言ld returned 1 exit status😂

    在复习c语言过程中遇到, 问题:reverseLinkedList.exe: Permission denied collect2.exe: error: ld returned 1 exit sta ...

  6. React 练习项目,仿简书博客写作平台

    Introduction 技术栈:react + redux + react-router + express + Nginx 练习点: redux 连接 react-router 路由跳转 scss ...

  7. Android lifecycle 实战及使用进阶

    版权声明:本文为博主原创文章,遵循CC 4.0 by-sa版权协议,转载请附上原文出处链接和本声明. 本文链接:https://blog.csdn.net/gdutxiaoxu/article/det ...

  8. thinkPhP 引入Smarty模板引擎及配置

    做配置:  TMPL_ENGINE_TYPE = “Smarty” 给smarty做配置: TMPL_ENGINE_CONFIG = array( 左标记, 右标记, )

  9. Jvm内存泄漏

    内存泄漏和内存溢出的关系 内存泄露:指程序中动态分配内存给一些临时对象,但是对象不会被GC所回收,它始终占用内存.即被分配的对象可达但已无用. 内存溢出:指程序运行过程中无法申请到足够的内存而导致的一 ...

  10. odoo模板中的t-标签用法

    在OpenERP中,通过QWeb来对模板进行渲染后加载到浏览器中,而模板中有许多的标签来定制各种需求变化,在这里记录学习过程中碰到的标签定义,以方便查询. 模板中的标签统一都是以"t-&qu ...