001/* 002 * Copyright (c) 2022-2023, Mybatis-Flex (fuhai999@gmail.com). 003 * <p> 004 * Licensed under the Apache License, Version 2.0 (the "License"); 005 * you may not use this file except in compliance with the License. 006 * You may obtain a copy of the License at 007 * <p> 008 * http://www.apache.org/licenses/LICENSE-2.0 009 * <p> 010 * Unless required by applicable law or agreed to in writing, software 011 * distributed under the License is distributed on an "AS IS" BASIS, 012 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 013 * See the License for the specific language governing permissions and 014 * limitations under the License. 015 */ 016 017package com.mybatisflex.core.constant; 018 019/** 020 * SQL 构建常量池。 021 * 022 * @author 王帅 023 * @since 2023-06-12 024 */ 025public final class SqlConsts { 026 027 private SqlConsts() { 028 } 029 030 // === 常用符号 === 031 032 public static final String EMPTY = ""; 033 public static final String BLANK = " "; 034 public static final String ASTERISK = "*"; 035 public static final String REFERENCE = "."; 036 public static final String SEMICOLON = ";"; 037 public static final String DELIMITER = ", "; 038 public static final String PLACEHOLDER = "?"; 039 public static final String PERCENT_SIGN = "%"; 040 public static final String SINGLE_QUOTE = "'"; 041 public static final String BRACKET_LEFT = "("; 042 public static final String BRACKET_RIGHT = ")"; 043 public static final String HINT_START = "/*+ "; 044 public static final String HINT_END = " */ "; 045 046 047 // === SQL 关键字 === 048 049 public static final String AS = " AS "; 050 public static final String OR = " OR "; 051 public static final String END = " END"; 052 public static final String AND = " AND "; 053 public static final String SET = " SET "; 054 public static final String CASE = "CASE"; 055 public static final String WHEN = " WHEN "; 056 public static final String THEN = " THEN "; 057 public static final String ELSE = " ELSE "; 058 public static final String FROM = " FROM "; 059 public static final String WHERE = " WHERE "; 060 public static final String SELECT = "SELECT "; 061 public static final String VALUES = " VALUES "; 062 public static final String DELETE = "DELETE"; 063 public static final String UPDATE = "UPDATE "; 064 public static final String HAVING = " HAVING "; 065 public static final String DISTINCT = "DISTINCT "; 066 public static final String GROUP_BY = " GROUP BY "; 067 public static final String ORDER_BY = " ORDER BY "; 068 public static final String INSERT = "INSERT"; 069 public static final String INTO = " INTO "; 070 public static final String WITH = "WITH "; 071 public static final String RECURSIVE = "RECURSIVE "; 072 public static final String INSERT_INTO = INSERT + INTO; 073 public static final String DELETE_FROM = DELETE + FROM; 074 public static final String SELECT_ALL_FROM = SELECT + ASTERISK + FROM; 075 076 077 // === Oracle SQl === 078 079 public static final String INSERT_ALL = "INSERT ALL "; 080 public static final String INSERT_ALL_END = " SELECT 1 FROM DUAL"; 081 082 083 // === Limit Offset === 084 085 public static final String TO = " TO "; 086 public static final String TOP = " TOP "; 087 public static final String ROWS = " ROWS "; 088 public static final String SKIP = " SKIP "; 089 public static final String FIRST = " FIRST "; 090 public static final String LIMIT = " LIMIT "; 091 public static final String OFFSET = " OFFSET "; 092 public static final String START_AT = " START AT "; 093 public static final String ROWS_ONLY = " ROWS ONLY"; 094 public static final String ROWS_FETCH_NEXT = " ROWS FETCH NEXT "; 095 096 097 // === 联表查询关键字 === 098 099 public static final String ON = " ON "; 100 public static final String JOIN = " JOIN "; 101 public static final String UNION = " UNION "; 102 public static final String UNION_ALL = " UNION ALL "; 103 public static final String LEFT_JOIN = " LEFT JOIN "; 104 public static final String FULL_JOIN = " FULL JOIN "; 105 public static final String RIGHT_JOIN = " RIGHT JOIN "; 106 public static final String INNER_JOIN = " INNER JOIN "; 107 public static final String CROSS_JOIN = " CROSS JOIN "; 108 109 110 // === 逻辑符号 === 111 112 public static final String GT = " > "; 113 public static final String GE = " >= "; 114 public static final String LT = " < "; 115 public static final String LE = " <= "; 116 public static final String LIKE = " LIKE "; 117 public static final String NOT_LIKE = " NOT LIKE "; 118 public static final String EQUALS = " = "; 119 public static final String NOT_EQUALS = " != "; 120 public static final String IS_NULL = " IS NULL "; 121 public static final String IS_NOT_NULL = " IS NOT NULL "; 122 public static final String IN = " IN "; 123 public static final String NOT_IN = " NOT IN "; 124 public static final String BETWEEN = " BETWEEN "; 125 public static final String NOT_BETWEEN = " NOT BETWEEN "; 126 127 128 // === 排序相关关键字 === 129 130 public static final String ASC = " ASC"; 131 public static final String DESC = " DESC"; 132 public static final String NULLS_FIRST = " NULLS FIRST"; 133 public static final String NULLS_LAST = " NULLS LAST"; 134 135 136 // === 数学运算符 === 137 138 public static final String PLUS_SIGN = " + "; 139 public static final String MINUS_SIGN = " - "; 140 public static final String DIVISION_SIGN = " / "; 141 public static final String MULTIPLICATION_SIGN = " * "; 142 143 // === 其他拼接需要的字符串 === 144 145 public static final String EQUALS_PLACEHOLDER = " = ? "; 146 public static final String AND_PLACEHOLDER = BLANK + PLACEHOLDER + AND + PLACEHOLDER + BLANK; 147 148}