public enum Feature extends Enum<Feature>
Enum Constant and Description |
---|
AI_TO_SEQUENCE_WITHOUT_DEFAULT
Postgres专用特性,Postgresql的表关于自增有两种可能,一种情况下用户使用 default
nextval('seq_name')作为主键的缺省值,模拟出了表自增的效果。
一种是没有模拟的和Oracle类似,由于无法控制用户建表的方法,因此两种情况都有可能存在。
因此特地增加这一选项,在每个表处理中检查该表的字段缺省值,用于强行确定到底是属于那种情况。
|
ALTER_FOR_EACH_COLUMN
在一个alter table中可以操作多个列,但是每列的前面要加上命令(MYSQL, POSTGRES)
|
AUTOINCREMENT_MUSTBE_PK
自增列必须为主键,某些数据库只支持将主键定义为自增(SQLlite)
|
AUTOINCREMENT_NEED_SEQUENCE
必须使用sequence才能实现自增,即表本身不支持自增列 (Oracle)
|
BATCH_GENERATED_KEY_BY_FUNCTION
SQLServer特性,Batch模式下使用getGeneratedKeys无法正常返回主键值,所以不得不使用@@IDENTITY返回结果
|
BATCH_GENERATED_KEY_ONLY_LAST
当批量插入时,使用JDBC getGeneratedKeys方法只能返回自增值的最后一个。 Abbout derby Bug:
https://issues.apache.org/jira/browse/DERBY-3609 Since Derby return
generated keys feature implement partially (Derby,Sqlite)
|
BRUKETS_FOR_ALTER_TABLE
必须将改表语句中的多列用括号起来,不然报错(Oracle)
|
CASE_WITHOUT_SWITCH
在CASE WHEN THEN ELSE
END这个系列的语法中,Derby的语法和别的数据库是不一样的。不允许在case后面写switch条件,而必须在每个when后面写条件表达式
(Derby)
|
COLUMN_ALTERATION_SYNTAX
Derby和Postgres特性,alter table语句中修改列支持必须用更复杂的语法 column-alteration syntax
key words must column-Name SET DATA TYPE VARCHAR(integer) | column-Name
SET DATA TYPE VARCHAR FOR BIT DATA(integer) | column-name SET INCREMENT
BY integer-constant | column-name RESTART WITH integer-constant |
column-name [ NOT ] NULL | column-name [ WITH | SET ] DEFAULT
default-value | column-name DROP DEFAULT
|
COLUMN_DEF_ALLOW_NULL
允许使用NULL在列定义中
|
CONCAT_IS_ADD
SQLServer特性,不支持||表示字符串相加,而是用+表示
|
CURSOR_ENDS_ON_INSERT_ROW
游标操作特性,在游标上直接插入记录时是限制
|
DBNAME_AS_SCHEMA
数据库名作为Schema或catlog (MySQL)
|
DROP_CASCADE
支持级联删除所有外键(Oracle)
|
EMPTY_CHAR_IS_NULL
Oracle特性,长度为0的字符串为null值
|
NOT_FETCH_NEXT_AUTOINCREAMENTD
Apache Derby上,如果调用ResultSet.newRecord()创建记录,下次正常插入记录时该表中自增主键会冲突。
|
NOT_SUPPORT_ALTER_DROP_COLUMN
不支持修改表删除字段 (SQLite)
|
NOT_SUPPORT_FOREIGN_KEY
不支持外键,目前SQLite按不支持外键处理,其驱动不够健壮
|
NOT_SUPPORT_INDEX_META
不支持元数据中的INDEX查询(SQLlite)
|
NOT_SUPPORT_KEYWORD_DEFAULT
不支持插入时使用DEFAULT关键字 (SQLite)
|
NOT_SUPPORT_LIKE_ESCAPE
不支持在Like语句中使用Escape语句作为转义 (暂无数据库有此特性)
|
NOT_SUPPORT_SET_BINARY
SQLite操作Blob时,不支持setBinaryStream,必须用setBytes (SQLite)
|
NOT_SUPPORT_TRUNCATE
不支持Truncate语句
|
NOT_SUPPORT_USER_FUNCTION
不支持获取用户函数(SQLite)
|
ONE_COLUMN_IN_SINGLE_DDL
在执行ALTER TABLE语句的时候一次只能操作一个列 (Derby)
|
REMARK_META_FETCH
要想从元数据中获取备注需要特别的参数才行(Oracle)
|
SELECT_ROW_NUM
允许使用Rownum/支持rowUID来限定结果数量 特别SQL语法特性(Oracle)
|
SUPPORT_COMMENT
支持COMMENT ON TABLE/COLUMN IS ''语法
|
SUPPORT_CONCAT
是否支持用||表示字符串相加。 如果没有这个特性的话,JEF就只能将字符串修改为concat(a,b,c...)的函数了 (Oracle)
|
SUPPORT_CONNECT_BY
Oracle特性,支持 start with ...
|
SUPPORT_INLINE_COMMENT
MYSQL语法,建表时语句在字段上直接加COMMENT语句
|
SUPPORT_LIMIT
支持Limit限定结果
|
SUPPORT_SEQUENCE
支持Sequence
|
TYPE_FORWARD_ONLY
ResultSet只能向前滚动,不支持向后滚动结果集(SQLlite)
|
UNION_WITH_BUCK
Union语句上每个子句两边加上括号 (Derby)
|
USER_AS_SCHEMA
用户名作为Schema (Oracle)
|
Modifier and Type | Method and Description |
---|---|
static Feature |
valueOf(String name)
Returns the enum constant of this type with the specified name.
|
static Feature[] |
values()
Returns an array containing the constants of this enum type, in
the order they are declared.
|
public static final Feature AUTOINCREMENT_NEED_SEQUENCE
Postgres虽然也必须使用Sequence,但是其支持serial数据类型(即default表达式 nextval('seq_name'); )模式,因此框架处理时认为 postgresql是可以无须SEQUENCE的。
public static final Feature AI_TO_SEQUENCE_WITHOUT_DEFAULT
public static final Feature SELECT_ROW_NUM
public static final Feature USER_AS_SCHEMA
public static final Feature DBNAME_AS_SCHEMA
public static final Feature COLUMN_DEF_ALLOW_NULL
public static final Feature TYPE_FORWARD_ONLY
public static final Feature NOT_SUPPORT_INDEX_META
public static final Feature AUTOINCREMENT_MUSTBE_PK
public static final Feature DROP_CASCADE
public static final Feature SUPPORT_CONCAT
public static final Feature CONCAT_IS_ADD
public static final Feature SUPPORT_CONNECT_BY
public static final Feature CASE_WITHOUT_SWITCH
public static final Feature BATCH_GENERATED_KEY_ONLY_LAST
public static final Feature BATCH_GENERATED_KEY_BY_FUNCTION
public static final Feature REMARK_META_FETCH
public static final Feature COLUMN_ALTERATION_SYNTAX
public static final Feature ONE_COLUMN_IN_SINGLE_DDL
public static final Feature BRUKETS_FOR_ALTER_TABLE
public static final Feature ALTER_FOR_EACH_COLUMN
public static final Feature NOT_FETCH_NEXT_AUTOINCREAMENTD
public static final Feature CURSOR_ENDS_ON_INSERT_ROW
public static final Feature SUPPORT_SEQUENCE
public static final Feature SUPPORT_LIMIT
public static final Feature NOT_SUPPORT_TRUNCATE
public static final Feature NOT_SUPPORT_FOREIGN_KEY
public static final Feature NOT_SUPPORT_LIKE_ESCAPE
public static final Feature NOT_SUPPORT_KEYWORD_DEFAULT
public static final Feature NOT_SUPPORT_USER_FUNCTION
public static final Feature NOT_SUPPORT_SET_BINARY
public static final Feature NOT_SUPPORT_ALTER_DROP_COLUMN
public static final Feature UNION_WITH_BUCK
public static final Feature EMPTY_CHAR_IS_NULL
public static final Feature SUPPORT_COMMENT
public static final Feature SUPPORT_INLINE_COMMENT
public static Feature[] values()
for (Feature c : Feature.values()) System.out.println(c);
public static Feature valueOf(String name)
name
- the name of the enum constant to be returned.IllegalArgumentException
- if this enum type has no constant with the specified nameNullPointerException
- if the argument is nullCopyright © 2020. All rights reserved.