Atitit.sql where条件表达式的原理  attilax概括

1. 数据查询接口sql api标准化1

2. Sql接口的问题2

2.1. 虽然sql是结构化的dsl,但是任然是编程语言类型的dsl2

2.2. Sql是文本化的dsl,虽然有一些sql解析工具,但是任然可能不够好,导致解析困难。。2

2.3. 以及只能使用标准化的sql函数2

2.4. 很难用来查询编程语言数据结构以及文件夹等2

3. 扩展sql接口。。Ssql2

3.1. 更加的结构化,容易解析。。2

3.2. 统一内出数据,cache,数据库,文件夹的查询api2

3.3. 可使用自定义函数直接查询业务系统2

4. 可供参考使sql  Express接口2

4.1. SimpleExpression3

4.2. BetweenExpression3

4.3. EmptyExpression3

4.4. IdentifierEqExpression(Object value) {3

4.5. InExpression3

4.6. LikeExpression3

4.7. protected LogicalExpression(Criterion lhs, Criterion rhs, String op) {4

4.8. NotEmptyExpression4

4.9. NotExpression4

4.10. NotNullExpression5

4.11. NullExpression5

4.12. PropertyExpression5

4.13. SQLCriterion5

4.14. SubqueryExpression5

5. public enum MatchMode {  EXACT, START, END, ANYWHERE;5

1. 数据查询接口sql api标准化

目前的查询数据现状::

Sql方式,但大多数原来查了就询数据库。对其他数据的查询支持不佳

Linq方式,可以查询编程语言内部数据结构了。。

使用编程语言来查询,繁琐。。太细节化。

业务系统的查询没有一个统一标准化的查询方式

作者:: 老哇的爪子 Attilax 艾龙,  EMAIL:1466519819@qq.com

转载请注明来源: http://www.cnblogs.com/attilax/

2. Sql接口的问题

2.1. 虽然sql是结构化的dsl,但是任然是编程语言类型的dsl

2.2. Sql是文本化的dsl,虽然有一些sql解析工具,但是任然可能不够好,导致解析困难。。

2.3. 以及只能使用标准化的sql函数

2.4. 很难用来查询编程语言数据结构以及文件夹等

虽然已经有linq等方式

3. 扩展sql接口。。Ssql

3.1. 更加的结构化,容易解析。。

不是有语言方式。贯彻数据即使代码风格。。使用json来书写ssql,,更加的结构化,容易解析。。

3.2.   统一内出数据,cache,数据库,文件夹的查询api

3.3. 可使用自定义函数直接查询业务系统

4. 可供参考使sql  Express接口

SimpleExpression  hb没有Express接口。。即使crition接口。。

关于sql解析方面的资料太少,只好使用orm hb的 api模式

4.1. SimpleExpression

protected SimpleExpression(String propertyName, Object value, String op) {

4.2. BetweenExpression

protected BetweenExpression(String propertyName, Object lo, Object hi) {

4.3. EmptyExpression

4.4.  IdentifierEqExpression(Object value) {

4.5. InExpression

InExpression(String propertyName, Object[] values)

4.6. LikeExpression

protected LikeExpression(String propertyName, String value,

Character escapeChar, boolean ignoreCase) {

this.propertyName = propertyName;

this.value = value;

this.escapeChar = escapeChar;

this.ignoreCase = ignoreCase;

}

protected LikeExpression(String propertyName, String value) {

this(propertyName, value, null, false);

}

protected LikeExpression(String propertyName, String value,

MatchMode matchMode) {

this(propertyName, matchMode.toMatchString(value));

}

protected LikeExpression(String propertyName, String value,

MatchMode matchMode, Character escapeChar, boolean ignoreCase) {

this(propertyName, matchMode.toMatchString(value), escapeChar,

ignoreCase);

}

4.7. protected LogicalExpression(Criterion lhs, Criterion rhs, String op) {

this.lhs = lhs;

this.rhs = rhs;

this.op = op;

4.8. NotEmptyExpression

public class NotEmptyExpression extends AbstractEmptinessExpression implements

Criterion {

protected NotEmptyExpression(String propertyName) {

4.9. NotExpression

protected NotExpression(Criterion criterion) {

4.10. NotNullExpression

protected NotNullExpression(String propertyName) {

4.11. NullExpression

4.12. PropertyExpression

protected PropertyExpression(String propertyName, String otherPropertyName,

String op) {

4.13. SQLCriterion

4.14. SubqueryExpression

5. public enum MatchMode {  EXACT, START, END, ANYWHERE;

Atitit.sql where条件表达式的原理  attilax概括的更多相关文章

  1. Atitit web remote远程调试的原理attilax总结

    Atitit web remote远程调试的原理attilax总结 Jvm是vm打开一个debug port,然后ide先连接..然后执行url,就会vm会与ide沟通.. Php的xdebug po ...

  2. Atitit.sql ast 表达式 语法树 语法 解析原理与实现 java php c#.net js python

    Atitit.sql ast 表达式 语法树 语法 解析原理与实现 java php c#.net js python 1.1. Sql语法树 ast 如下图锁死1 2. SQL语句解析的思路和过程3 ...

  3. Atitit.  单列索引与多列索引 多个条件的查询原理与设计实现

    Atitit.  单列索引与多列索引 多个条件的查询原理与设计实现 1. MySQL只能使用一个索引1 1.1. 最左前缀1 1.2. 从另一方面理解,它相当于我们创建了(firstname,last ...

  4. Atitit 马尔可夫过程(Markov process) hmm隐马尔科夫。 马尔可夫链,的原理attilax总结

    Atitit 马尔可夫过程(Markov process) hmm隐马尔科夫. 马尔可夫链,的原理attilax总结 1. 马尔可夫过程1 1.1. 马尔科夫的应用 生成一篇"看起来像文章的 ...

  5. Atitit 视频编码与动画原理attilax总结

    Atitit 视频编码与动画原理attilax总结 1.1. 第一步:实现有损图像压缩和解压1 1.2. 接着将其量化,所谓量化,就是信号采样的步长,1 1.3. 第二步:实现宏块误差计算2 1.4. ...

  6. Atitit 深入理解耦合Coupling的原理与attilax总结

    Atitit 深入理解耦合Coupling的原理与attilax总结     耦合是指两个或两个以上的电路元件或电网络等的输入与输出之间存在紧密配合与相互影响,并通过相互作用从一侧向另一侧传输能量的现 ...

  7. Atitit 边缘检测原理attilax总结

    Atitit 边缘检测原理attilax总结 1. 边缘检测的概念1 1.1. 边缘检测的用途1 2. 边缘检测方法分类1 3. 边缘检测的基本方法2 3.1. Roberts边缘检测算子2 3.2. ...

  8. Atitit wsdl的原理attilax总结

    Atitit wsdl的原理attilax总结 1.1. 在 W3C 的 WSDL 发展史1 1.2. 获取wsdl,可能需要url后面加wsdl,也可能直接url1 1.3. Wsdl的作用2 1. ...

  9. Atitit.软件与编程语言中的锁机制原理attilax总结

    Atitit.软件与编程语言中的锁机制原理attilax总结 1. 用途 (Db,业务数据加锁,并发操作加锁.1 2. 锁得类型 排它锁 "互斥锁 共享锁 乐观锁与悲观锁1 2.1. 自旋锁 ...

随机推荐

  1. oracle 查看执行最慢 sql

    查询执行最慢的sql select * from (select sa.SQL_TEXT, sa.SQL_FULLTEXT, sa.EXECUTIONS "执行次数", round ...

  2. linux图机界面机制

    1.X WindowX Window 是由麻省理工学院(MIT)推出的窗口系统,简称X,它旨在建立不依赖于特定硬件系统的图形和文字显示窗口系统的标准.1987 年9 月,MIT 推出了X 系统的11 ...

  3. appium+python自动化45-夜神模拟器连不上(adb server version (36) doesn't match this client (39); killing...)

    前言 最新下了个最新版的夜神模拟器,然后adb devices发现连不上模拟器了,报adb server version (36) doesn't match this client (39); ki ...

  4. jquery-qrcode 生成和读取二维码

    首先要导入jar包(生成二维码的jar和读取二维码的jar) 生成二维码: package com.imooc.qrcode; import java.awt.Color; import java.a ...

  5. iOS:使用block进行类与类,控制器与控制器之间的传值

    介绍:在iOS中类与类,控制器与控制器之间传值的方式有多种,分别是:单例传值.代理传值.通知传值.block传值或者一些偏好设置也可以用来传值.... 每一种传值方式都有各自的优点和缺点,针对不同情况 ...

  6. RMAN备份与恢复之概念二

      1   RMAN备份恢复 1.1  基础理论 恢复可以分为完全恢复和不完全恢复 完全数据库恢复是恢复到故障发生前的状态,所有已经提交的操作都进行恢复,确保数据库不丢失任何数据,完全恢复只用于归档模 ...

  7. HashMap、LinkedHashMap和TreeMap对比

    共同点: HashMap,LinkedHashMap,TreeMap都属于Map:Map 主要用于存储键(key)值(value)对,根据键得到值,因此键不允许键重复,但允许值重复. 不同点: 1.H ...

  8. DevExpress 编译成功的 dll

    DevExpress 编译成功的 dll 附注册方法 其它的有些文件没有,如: DevExpress.EasyTest 这个程序集找不到 希望有的朋友可以分享一下, 安装程序集 通常,将程序集安装到G ...

  9. 在表单里面检查用户名是否存javascript

    function CheckUser(fn) { $.get("/Pages/Handler/CheckExistHander.ashx", { "txt_UserNo& ...

  10. Oracle一些查询的习题,初学者一定要练习,蛮不错的

    1. select * from emp; 2. select empno, ename, job from emp; 3. select empno 编号, ename 姓名, job 工作 fro ...