字號: 小 中 大 |
推薦給好友
上一篇 |
下一篇
詳解Enterprise JavaBeans查詢語言之一
發布: 2008-5-06 11:30 |
作者: 不詳 |
來源:
www.linuxaid.com.cn |
查看: 26次 | 進入軟件測試論壇討論
領測軟件測試網
在這一部分我們討論Enterprise JavaBean規范中定義的EJB QL語法。下面的素材中的大多數直接取自Enterprise JavaBean規范或是對規范的解釋。
EJB QL的BNF語法
這里是EJB QL的全部BNF語法解釋:
EJB QL ::= select_clause
from_clause [where_clause]
from_clause ::= FROM
identification_variable_declaration
[, identification_variable_declaration]*
identification_variable_declaration
::=
collection_member_declaration |
range_variable_declaration
collection_member_declaration
::=
IN (collection_valued_path_expression)
[AS] identifier
range_variable_declaration
::=
abstract_schema_name
[AS] identifier
single_valued_path_expression
::=
{single_valued_navigation |
identification_variable}.cmp_field |
single_valued_navigation
single_valued_navigation
::=
identification_variable.
[single_valued_cmr_field.]*
single_valued_cmr_field
collection_valued_path_expression
::=
identification_variable.
[single_valued_cmr_field.]*
collection_valued_cmr_field
select_clause ::= SELECT [DISTINCT]
{single_valued_path_expression |
OBJECT(identification_variable)}
where_clause
::= WHERE conditional_expression
conditional_expression
::= conditional_term |
conditional_expression OR conditional_term
conditional_term
::= conditional_factor |
conditional_term AND conditional_factor
conditional_factor
::= [ NOT ] conditional_test
conditional_test
:: = conditional_primary
conditional_primary
::=
simple_cond_expression | (conditional_expression)
simple_cond_expression
::=
comparison_expression |
between_expression |
like_expression |
in_expression |
null_comparison_expression |
empty_collection_comparison_expression |
collection_member_expression
between_expression
::=
arithmetic_expression [NOT] BETWEEN
arithmetic_expression
AND arithmetic_expression
in_expression
::=
single_valued_path_expression
[NOT] IN (string_literal
[, string_literal]* )
like_expression
::=
single_valued_path_expression
[NOT] LIKE pattern_value
[ESCAPE escape-character]
null_comparison_expression
::=
single_valued_path_expression IS [NOT] NULL
empty_collection_comparison_expression
::=
collection_valued_path_expression
IS [NOT] EMPTY
collection_member_expression
::=
{single_valued_navigation
| identification_variable |
input_parameter}
[NOT] MEMBER [OF]
collection_valued_path_expression
comparison_expression ::=
string_value { =|<>}
string_expression |
boolean_value { =|<>}
boolean_expression} |
datetime_value { = | <> | > | < }
datetime_expression |
entity_bean_value { = | <> }
entity_bean_expression |
arithmetic_value comparison_operator
single_value_designator
arithmetic_value
::= single_valued_path_expression |
functions_returning_numerics
single_value_designator
::= scalar_expression
comparison_operator
::=
= | > | >= | < | <= | <>
scalar_expression
::= arithmetic_expression
arithmetic_expression
::= arithmetic_term |
arithmetic_expression { + | - }
arithmetic_term
arithmetic_term
::= arithmetic_factor |
arithmetic_term { * | / }
arithmetic_factor
arithmetic_factor ::= { + |- }
arithmetic_primary
arithmetic_primary
::= single_valued_path_expression |
literal | (arithmetic_expression) |
input_parameter
| functions_returning_numerics
string_value
::= single_valued_path_expression |
functions_returning_strings
string_expression
::= string_primary | input_expression
string_primary
::= single_valued_path_expression
| literal |
(string_expression)
| functions_returning_strings
datetime_value
::= single_valued_path_expression
datetime_expression
::= datetime_value | input_parameter
boolean_value
::= single_valued_path_expression
boolean_expression
::= single_valued_path_expression |
literal | input_parameter
entity_bean_value
::=
single_valued_navigation
| identification_variable
entity_bean_expression
::= entity_bean_value | input_parameter
functions_returning_strings
::=
CONCAT(string_expression,
string_expression) |
SUBSTRING(string_expression,
arithmetic_expression,
arithmetic_expression)
functions_returning_numerics::=
LENGTH(string_expression) |
LOCATE(string_expression,
string_expression[, arithmetic_expression]) |
ABS(arithmetic_expression) |
SQRT(arithmetic_expression)
|
文章來源于領測軟件測試網 http://www.kjueaiud.com/