Atitit.sql where条件表达式的原理 attilax概括
Atitit.sql where条件表达式的原理 attilax概括
2.1. 虽然sql是结构化的dsl,但是任然是编程语言类型的dsl2
2.2. Sql是文本化的dsl,虽然有一些sql解析工具,但是任然可能不够好,导致解析困难。。2
3.2. 统一内出数据,cache,数据库,文件夹的查询api2
4.4. IdentifierEqExpression(Object value) {3
4.7. protected LogicalExpression(Criterion lhs, Criterion rhs, String op) {4
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概括的更多相关文章
- Atitit web remote远程调试的原理attilax总结
Atitit web remote远程调试的原理attilax总结 Jvm是vm打开一个debug port,然后ide先连接..然后执行url,就会vm会与ide沟通.. Php的xdebug po ...
- 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 ...
- Atitit. 单列索引与多列索引 多个条件的查询原理与设计实现
Atitit. 单列索引与多列索引 多个条件的查询原理与设计实现 1. MySQL只能使用一个索引1 1.1. 最左前缀1 1.2. 从另一方面理解,它相当于我们创建了(firstname,last ...
- Atitit 马尔可夫过程(Markov process) hmm隐马尔科夫。 马尔可夫链,的原理attilax总结
Atitit 马尔可夫过程(Markov process) hmm隐马尔科夫. 马尔可夫链,的原理attilax总结 1. 马尔可夫过程1 1.1. 马尔科夫的应用 生成一篇"看起来像文章的 ...
- Atitit 视频编码与动画原理attilax总结
Atitit 视频编码与动画原理attilax总结 1.1. 第一步:实现有损图像压缩和解压1 1.2. 接着将其量化,所谓量化,就是信号采样的步长,1 1.3. 第二步:实现宏块误差计算2 1.4. ...
- Atitit 深入理解耦合Coupling的原理与attilax总结
Atitit 深入理解耦合Coupling的原理与attilax总结 耦合是指两个或两个以上的电路元件或电网络等的输入与输出之间存在紧密配合与相互影响,并通过相互作用从一侧向另一侧传输能量的现 ...
- Atitit 边缘检测原理attilax总结
Atitit 边缘检测原理attilax总结 1. 边缘检测的概念1 1.1. 边缘检测的用途1 2. 边缘检测方法分类1 3. 边缘检测的基本方法2 3.1. Roberts边缘检测算子2 3.2. ...
- Atitit wsdl的原理attilax总结
Atitit wsdl的原理attilax总结 1.1. 在 W3C 的 WSDL 发展史1 1.2. 获取wsdl,可能需要url后面加wsdl,也可能直接url1 1.3. Wsdl的作用2 1. ...
- Atitit.软件与编程语言中的锁机制原理attilax总结
Atitit.软件与编程语言中的锁机制原理attilax总结 1. 用途 (Db,业务数据加锁,并发操作加锁.1 2. 锁得类型 排它锁 "互斥锁 共享锁 乐观锁与悲观锁1 2.1. 自旋锁 ...
随机推荐
- JavaScript 开发的45个技巧
JavaScript是一个绝冠全球的编程语言,可用于Web开发.移动应用开发(PhoneGap.Appcelerator).服务器端开发(Node.js和Wakanda)等等.JavaScript还是 ...
- GNU C内联汇编(AT&T语法)
转:http://www.linuxso.com/linuxbiancheng/40050.html 内联汇编提供了可以在C或C++代码中创建汇编语言代码,不必连接额外的库或程序.这种方法对最终程序在 ...
- vs code 使用Git进行源代码管理
第一步:用vs code 打开一个空文件夹,如本示例Demo2, 第二步:点击左侧第三个图标“源代码管理”,然后再点击初始化存储库按钮 初始化之后界面现变成下图所示: 此时文件夹中会新增一个隐藏文件夹 ...
- 可添加头部尾部RecyclerView,很帅哦~
WrapRecyclerView 是一个可以添加头部和尾部的RecyclerView,并且提供了一个 WrapAdapter, 它可以让你轻松为 RecyclerView 添加头部和尾部. 示例中 ...
- 在Oracle中利用SQL_TRACE跟踪SQL的执行
当你在执行一条SQL语句非常慢的时候,你是不是想问Oracle怎么执行这条语句的呢? Oracle提供的SQL_TRACE工具可以让你知道你执行的SQL究竟做了什么.执行的过程会被 输出到trace文 ...
- \r和\n的区别
/n 是换行/r 是回车 这是两码事,换行是指移动到下一行,回车是指移动到行首,我们通常所说的“回车”其实是这两个动作的结合.
- Linux下的基础命令
在容器环境中很多时候要确定底层操作系统是什么和什么版本,网上找了一把,发现了一些比较有用的命令,从其他地方转过来,参考 # uname -a # 查看内核/操作系统/CPU信息 # head -n / ...
- Linux中文乱码问题终极解决方法
方法一: 修改/root/.bash_profile文件,增加export LANG=zh_CN.GB18030该文件在用户目录下,对于其他用户,也必须相应修改该文件. 使用该方法时putty能显示中 ...
- MS SQL 标识列的查询
摘自: http://www.2cto.com/database/201212/175000.html SQL标识列的查询 1.判段一个表是否具有标识列 www.2cto.com 可 ...
- LInux 分割合并文件
有两种方式, 第一种使用dd命令 第二种使用split dd命令是linux下一个非常有用的磁盘命令.它可以将指定大小的块拷贝成一个文件,并在拷贝的同时执行指定的转换.UNIX已经提供了文件切割功能, ...