public abstract class AbstractDialect extends Object implements IDialect
Constructor and Description |
---|
AbstractDialect() |
AbstractDialect(String identifierQuoteBegin,
String identifierQuoteEnd) |
Modifier and Type | Method and Description |
---|---|
String |
buildCountSQL(String originSql)
构建计算查询结果总记录数量的SQL语句
|
String |
buildCreateSql(Class<? extends IEntity> entityClass,
String prefix,
IShardingable shardingable)
构建创建实体数据表SQL语句
|
String |
buildDeleteByPkSql(Class<? extends IEntity> entityClass,
String prefix,
IShardingable shardingable,
Fields pkFields)
构建删除实体数据记录SQL语句
|
String |
buildDropSql(Class<? extends IEntity> entityClass,
String prefix,
IShardingable shardingable)
构建删除实体数据表SQL语句
|
String |
buildInsertSql(Class<? extends IEntity> entityClass,
String prefix,
IShardingable shardingable,
Fields fields)
构建插入实体数据记录SQL语句
|
String |
buildPagedQuerySql(String originSql,
int page,
int pageSize)
构建分页SQL语句
|
String |
buildSelectByPkSql(Class<? extends IEntity> entityClass,
String prefix,
IShardingable shardingable,
Fields pkFields,
Fields fields)
构建根据主键查询实体数据记录SQL语句
|
String |
buildSelectSql(Class<? extends IEntity> entityClass,
String prefix,
IShardingable shardingable,
Fields fields)
构建查询全部实体数据记录SQL语句
|
String |
buildTableName(String prefix,
EntityMeta entityMeta,
IShardingable shardingable)
获取完整的数据表名称,并根据数据库特性决定是否添加引用标识符
|
String |
buildTableName(String prefix,
String tableName,
IShardingRule shardingRule,
IShardingable shardingable)
获取完整的数据表名称,并根据数据库特性决定是否添加引用标识符
|
String |
buildUpdateByPkSql(Class<? extends IEntity> entityClass,
String prefix,
IShardingable shardingable,
Fields pkFields,
Fields fields)
构建更新实体数据记录SQL语句
|
protected String |
doGenerateFieldsFormatStr(Fields fields,
String suffix,
String separator) |
protected String |
doRemoveOrderByElements(String originSql) |
protected void |
doValidProperty(EntityMeta entityMeta,
Fields fields,
boolean isPrimaryKeys)
验证字段是否合法有效
|
Map<String,Object> |
getGeneratedKey(Statement statement,
List<String> autoincrementKeys)
获取自增主键值(按 Long 类型返回),采用JDBC Statement对象获取自动生成的主键(仅处理单主键)
|
String |
getIdentifierQuoteBegin()
获取引用标识符
|
String |
getIdentifierQuoteEnd()
获取引用标识符
|
String |
getSequenceNextValSql(String sequenceName)
获取下一序列值的SQL语句
|
boolean |
hasIdentifierQuote()
是否存在引用标识符
|
void |
setIdentifierQuote(String identifierQuoteBegin,
String identifierQuoteEnd)
设置引用标识符
|
String |
wrapIdentifierQuote(String origin)
添加引用标识符的字段或表名称,防止字段或表名与关键字冲突,此接口方法默认实现按原样返回
|
public String wrapIdentifierQuote(String origin)
IDialect
wrapIdentifierQuote
in interface IDialect
origin
- 字段或表名称public void setIdentifierQuote(String identifierQuoteBegin, String identifierQuoteEnd)
IDialect
setIdentifierQuote
in interface IDialect
identifierQuoteBegin
- 引用标识符开始identifierQuoteEnd
- 引用标识符结束public boolean hasIdentifierQuote()
IDialect
hasIdentifierQuote
in interface IDialect
public String getIdentifierQuoteBegin()
IDialect
getIdentifierQuoteBegin
in interface IDialect
public String getIdentifierQuoteEnd()
IDialect
getIdentifierQuoteEnd
in interface IDialect
public Map<String,Object> getGeneratedKey(Statement statement, List<String> autoincrementKeys) throws SQLException
IDialect
getGeneratedKey
in interface IDialect
statement
- Statement对象autoincrementKeys
- 自定义自增字段名称集合SQLException
- 可能产生的异常public String getSequenceNextValSql(String sequenceName)
IDialect
getSequenceNextValSql
in interface IDialect
sequenceName
- 序列名称public String buildPagedQuerySql(String originSql, int page, int pageSize)
IDialect
buildPagedQuerySql
in interface IDialect
originSql
- 原SQL语句page
- 页号pageSize
- 每页记录数public String buildCountSQL(String originSql)
IDialect
buildCountSQL
in interface IDialect
originSql
- 原SQL语句public String buildCreateSql(Class<? extends IEntity> entityClass, String prefix, IShardingable shardingable)
IDialect
buildCreateSql
in interface IDialect
entityClass
- 实体模型类prefix
- 实体名称前缀shardingable
- 分片(表)参数对象public String buildDropSql(Class<? extends IEntity> entityClass, String prefix, IShardingable shardingable)
IDialect
buildDropSql
in interface IDialect
entityClass
- 实体模型类prefix
- 实体名称前缀shardingable
- 分片(表)参数对象protected String doGenerateFieldsFormatStr(Fields fields, String suffix, String separator)
fields
- 字段名称集合suffix
- 字段名称后缀,可选separator
- 分隔符,可选,默认“, ”public String buildTableName(String prefix, EntityMeta entityMeta, IShardingable shardingable)
IDialect
buildTableName
in interface IDialect
prefix
- 数据表名称前缀entityMeta
- 数据实体属性描述对象shardingable
- 分片(表)参数对象public String buildTableName(String prefix, String tableName, IShardingRule shardingRule, IShardingable shardingable)
IDialect
buildTableName
in interface IDialect
prefix
- 数据表名称前缀tableName
- 数据表名称shardingRule
- 数据分片(表)规则shardingable
- 分片(表)参数对象protected void doValidProperty(EntityMeta entityMeta, Fields fields, boolean isPrimaryKeys)
entityMeta
- 数据实体属性描述对象fields
- 字段名称集合isPrimaryKeys
- fields中存放的是否为主键public String buildInsertSql(Class<? extends IEntity> entityClass, String prefix, IShardingable shardingable, Fields fields)
IDialect
buildInsertSql
in interface IDialect
entityClass
- 实体模模型类prefix
- 实体名称前缀shardingable
- 分片(表)参数对象fields
- 字段名称集合,可选参数,若不指定则包括全部字段public String buildDeleteByPkSql(Class<? extends IEntity> entityClass, String prefix, IShardingable shardingable, Fields pkFields)
IDialect
buildDeleteByPkSql
in interface IDialect
entityClass
- 实体模模型类prefix
- 实体名称前缀shardingable
- 分片(表)参数对象pkFields
- 主键字段名称集合,可选参数,若不指定则包括全部主键public String buildUpdateByPkSql(Class<? extends IEntity> entityClass, String prefix, IShardingable shardingable, Fields pkFields, Fields fields)
IDialect
buildUpdateByPkSql
in interface IDialect
entityClass
- 实体模模型类prefix
- 前缀名称shardingable
- 分片(表)参数对象pkFields
- 主键字段名称集合,可选参数,若不指定则包括全部主键fields
- 字段名称集合,可选参数,若不指定则包括全部字段public String buildSelectByPkSql(Class<? extends IEntity> entityClass, String prefix, IShardingable shardingable, Fields pkFields, Fields fields)
IDialect
buildSelectByPkSql
in interface IDialect
entityClass
- 实体模模型类prefix
- 实体名称前缀shardingable
- 分片(表)参数对象pkFields
- 主键字段名称集合,可选参数,若不指定则包括全部主键fields
- 字段名称集合,可选参数,若不指定则包括全部字段public String buildSelectSql(Class<? extends IEntity> entityClass, String prefix, IShardingable shardingable, Fields fields)
IDialect
buildSelectSql
in interface IDialect
entityClass
- 实体模模型类prefix
- 实体名称前缀shardingable
- 分片(表)参数对象fields
- 字段名称集合,可选参数,若不指定则包括全部字段Copyright © 2022. All rights reserved.