org.anyline.data.jdbc.derby.DerbyAdapter Maven / Gradle / Ivy
package org.anyline.data.jdbc.derby;
import org.anyline.data.adapter.JDBCAdapter;
import org.anyline.data.adapter.SQLAdapter;
import org.anyline.data.entity.*;
import org.anyline.data.run.Run;
import org.anyline.entity.DataSet;
import org.anyline.entity.OrderStore;
import org.anyline.entity.PageNavi;
import org.anyline.entity.data.DatabaseType;
import org.anyline.util.BasicUtil;
import org.anyline.util.SQLUtil;
import org.springframework.beans.factory.InitializingBean;
import org.springframework.beans.factory.annotation.Value;
import org.springframework.jdbc.support.rowset.SqlRowSet;
import org.springframework.stereotype.Repository;
import java.sql.DatabaseMetaData;
import java.sql.ResultSet;
import java.util.Collection;
import java.util.LinkedHashMap;
import java.util.List;
import java.util.Map;
@Repository("anyline.data.jdbc.adapter.derby")
public class DerbyAdapter extends SQLAdapter implements JDBCAdapter, InitializingBean {
public DatabaseType type(){
return DatabaseType.Derby;
}
public DerbyAdapter(){
delimiterFr = "";
delimiterTo = "";
}
@Value("${anyline.data.jdbc.delimiter.derby:}")
private String delimiter;
@Override
public void afterPropertiesSet() {
setDelimiter(delimiter);
}
/* *****************************************************************************************************
*
* DML
*
* ****************************************************************************************************/
@Override
public String parseFinalQuery(Run run){
String sql = run.getBaseQuery();
String cols = run.getQueryColumns();
if(!"*".equals(cols)){
String reg = "(?i)^select[\\s\\S]+from";
sql = sql.replaceAll(reg,"SELECT "+cols+" FROM ");
}
OrderStore orders = run.getOrderStore();
if(null != orders){
sql += orders.getRunText(getDelimiterFr()+getDelimiterTo());
}
PageNavi navi = run.getPageNavi();
if(null != navi){
int limit = navi.getLastRow() - navi.getFirstRow() + 1;
if(limit < 0){
limit = 0;
}
sql += " OFFSET " + navi.getFirstRow() + " ROWS FETCH NEXT " + limit + " ROWS ONLY ";
}
sql = sql.replaceAll("WHERE\\s*1=1\\s*AND", "WHERE");
return sql;
}
/* *****************************************************************************************************************
*
* metadata
*
* =================================================================================================================
* table : 表
* master table : 主表
* partition table : 分区表
* column : 列
* tag : 标签
* index : 索引
* constraint : 约束
*
******************************************************************************************************************/
/* *****************************************************************************************************************
* table
* -----------------------------------------------------------------------------------------------------------------
* public List buildQueryTableRunSQL(String catalog, String schema, String pattern, String types)
* public List buildQueryTableCommentRunSQL(String catalog, String schema, String pattern, String types)
* public LinkedHashMap tables(int index, boolean create, String catalog, String schema, LinkedHashMap tables, DataSet set) throws Exception
* public LinkedHashMap tables(boolean create, LinkedHashMap tables, DatabaseMetaData dbmd, String catalog, String schema, String pattern, String ... types) throws Exception
* public LinkedHashMap comments(int index, boolean create, String catalog, String schema, LinkedHashMap tables, DataSet set) throws Exception
******************************************************************************************************************/
/**
* 查询表
* @param catalog catalog
* @param schema schema
* @param pattern pattern
* @param types types
* @return String
*/
@Override
public List buildQueryTableRunSQL(String catalog, String schema, String pattern, String types) throws Exception{
return super.buildQueryTableRunSQL(catalog, schema, pattern, types);
}
/**
* 查询表
* @param catalog catalog
* @param schema schema
* @param pattern pattern
* @param types types
* @return String
*/
@Override
public List buildQueryTableCommentRunSQL(String catalog, String schema, String pattern, String types) throws Exception{
return super.buildQueryTableCommentRunSQL(catalog, schema, pattern, types);
}
@Override
public LinkedHashMap tables(int index, boolean create, String catalog, String schema, LinkedHashMap tables, DataSet set) throws Exception{
return super.tables(index, create, catalog, schema, tables, set);
}
@Override
public LinkedHashMap tables(boolean create, LinkedHashMap tables, DatabaseMetaData dbmd, String catalog, String schema, String pattern, String ... types) throws Exception{
return super.tables(create, tables, dbmd, catalog, schema, pattern, types);
}
/* *****************************************************************************************************************
* master table
* -----------------------------------------------------------------------------------------------------------------
* public List buildQueryMasterTableRunSQL(String catalog, String schema, String pattern, String types)
* public LinkedHashMap mtables(int index, boolean create, String catalog, String schema, LinkedHashMap tables, DataSet set) throws Exception
* public LinkedHashMap mtables(boolean create, LinkedHashMap tables, DatabaseMetaData dbmd, String catalog, String schema, String pattern, String ... types) throws Exception
******************************************************************************************************************/
/**
* 查询主表
* @param catalog catalog
* @param schema schema
* @param pattern pattern
* @param types types
* @return String
*/
@Override
public List buildQueryMasterTableRunSQL(String catalog, String schema, String pattern, String types) throws Exception{
return super.buildQueryMasterTableRunSQL(catalog, schema, pattern, types);
}
/**
* 从jdbc结果中提取表结构
* ResultSet set = con.getMetaData().getTables()
* @param create 上一步没有查到的,这一步是否需要新创建
* @param catalog catalog
* @param schema schema
* @param dbmd DatabaseMetaData
* @return List
*/
@Override
public LinkedHashMap mtables(boolean create, LinkedHashMap tables, DatabaseMetaData dbmd, String catalog, String schema, String pattern, String ... types) throws Exception{
return super.mtables(create, tables, dbmd, catalog, schema, pattern, types);
}
/**
* 从上一步生成的SQL查询结果中 提取表结构
* @param index 第几条SQL
* @param create 上一步没有查到的,这一步是否需要新创建
* @param catalog catalog
* @param schema schema
* @param tables 上一步查询结果
* @param set set
* @return tables
* @throws Exception 异常
*/
@Override
public LinkedHashMap mtables(int index, boolean create, String catalog, String schema, LinkedHashMap tables, DataSet set) throws Exception{
return super.mtables(index, create, catalog, schema, tables, set);
}
/* *****************************************************************************************************************
* partition table
* -----------------------------------------------------------------------------------------------------------------
* public List buildQueryPartitionTableRunSQL(String catalog, String schema, String pattern, String types)
* public List buildQueryPartitionTableRunSQL(MasterTable master, Map tags, String name)
* public List buildQueryPartitionTableRunSQL(MasterTable master, Map tags)
* public LinkedHashMap ptables(int total, int index, boolean create, MasterTable master, String catalog, String schema, LinkedHashMap tables, DataSet set) throws Exception
* public LinkedHashMap ptables(boolean create, LinkedHashMap tables, DatabaseMetaData dbmd, String catalog, String schema, MasterTable master) throws Exception
******************************************************************************************************************/
/**
* 查询分区表
* @param catalog catalog
* @param schema schema
* @param pattern pattern
* @param types types
* @return String
*/
@Override
public List buildQueryPartitionTableRunSQL(String catalog, String schema, String pattern, String types) throws Exception{
return super.buildQueryPartitionTableRunSQL(catalog, schema, pattern, types);
}
@Override
public List buildQueryPartitionTableRunSQL(MasterTable master, Map tags, String name) throws Exception{
return super.buildQueryPartitionTableRunSQL(master, tags, name);
}
@Override
public List buildQueryPartitionTableRunSQL(MasterTable master, Map tags) throws Exception{
return super.buildQueryPartitionTableRunSQL(master, tags);
}
/**
* 根据查询结果集构造Table
* @param total 合计SQL数量
* @param index 第几条SQL 对照 buildQueryMasterTableRunSQL返回顺序
* @param create 上一步没有查到的,这一步是否需要新创建
* @param master 主表
* @param catalog catalog
* @param schema schema
* @param tables 上一步查询结果
* @param set set
* @return tables
* @throws Exception 异常
*/
@Override
public LinkedHashMap ptables(int total, int index, boolean create, MasterTable master, String catalog, String schema, LinkedHashMap tables, DataSet set) throws Exception{
return super.ptables(total, index, create, master, catalog, schema, tables, set);
}
/**
* 根据JDBC
* @param create 上一步没有查到的,这一步是否需要新创建
* @param master 主表
* @param catalog catalog
* @param schema schema
* @param tables 上一步查询结果
* @param dbmd DatabaseMetaData
* @return tables
* @throws Exception 异常
*/
@Override
public LinkedHashMap ptables(boolean create, LinkedHashMap tables, DatabaseMetaData dbmd, String catalog, String schema, MasterTable master) throws Exception{
return super.ptables(create, tables, dbmd, catalog, schema, master);
}
/* *****************************************************************************************************************
* column
* -----------------------------------------------------------------------------------------------------------------
* public List buildQueryColumnRunSQL(Table table, boolean metadata)
* public LinkedHashMap columns(int index, boolean create, Table table, LinkedHashMap columns, DataSet set) throws Exception
* public LinkedHashMap columns(boolean create, LinkedHashMap columns, Table table, SqlRowSet set) throws Exception
* public LinkedHashMap columns(boolean create, LinkedHashMap columns, DatabaseMetaData dbmd, Table table, String pattern) throws Exception
******************************************************************************************************************/
/**
* 查询表上的列
* @param table 表
* @param metadata 是否根据metadata(true:1=0,false:查询系统表)
* @return sql
*/
@Override
public List buildQueryColumnRunSQL(Table table, boolean metadata) throws Exception{
return super.buildQueryColumnRunSQL(table, metadata);
}
/**
*
* @param index 第几条SQL 对照 buildQueryColumnRunSQL返回顺序
* @param create 上一步没有查到的,这一步是否需要新创建
* @param table 表
* @param columns 上一步查询结果
* @param set set
* @return columns columns
* @throws Exception 异常
*/
@Override
public LinkedHashMap columns(int index, boolean create, Table table, LinkedHashMap columns, DataSet set) throws Exception{
return super.columns(index, create, table, columns, set);
}
@Override
public LinkedHashMap columns(boolean create, LinkedHashMap columns, Table table, SqlRowSet set) throws Exception{
return super.columns(create, columns, table, set);
}
@Override
public LinkedHashMap columns(boolean create, LinkedHashMap columns, DatabaseMetaData dbmd, Table table, String pattern) throws Exception{
return super.columns(create, columns, dbmd, table, pattern);
}
/* *****************************************************************************************************************
* tag
* -----------------------------------------------------------------------------------------------------------------
* public List buildQueryTagRunSQL(Table table, boolean metadata)
* public LinkedHashMap tags(int index, boolean create, Table table, LinkedHashMap tags, DataSet set) throws Exception
* public LinkedHashMap tags(boolean create, Table table, LinkedHashMap tags, SqlRowSet set) throws Exception
* public LinkedHashMap tags(boolean create, LinkedHashMap tags, DatabaseMetaData dbmd, Table table, String pattern) throws Exception
******************************************************************************************************************/
/**
*
* @param table 表
* @param metadata 是否根据metadata | 查询系统表
* @return sqls
*/
@Override
public List buildQueryTagRunSQL(Table table, boolean metadata) throws Exception{
return super.buildQueryTagRunSQL(table, metadata);
}
/**
* 根据查询结果集构造Tag
* @param index 第几条查询SQL 对照 buildQueryTagRunSQL返回顺序
* @param create 上一步没有查到的,这一步是否需要新创建
* @param table 表
* @param tags 上一步查询结果
* @param set set
* @return tags
* @throws Exception 异常
*/
@Override
public LinkedHashMap tags(int index, boolean create, Table table, LinkedHashMap tags, DataSet set) throws Exception{
return super.tags(index, create, table, tags, set);
}
@Override
public LinkedHashMap tags(boolean create, Table table, LinkedHashMap tags, SqlRowSet set) throws Exception{
return super.tags(create, table, tags, set);
}
@Override
public LinkedHashMap tags(boolean create, LinkedHashMap tags, DatabaseMetaData dbmd, Table table, String pattern) throws Exception{
return super.tags(create, tags, dbmd, table, pattern);
}
/* *****************************************************************************************************************
* index
* -----------------------------------------------------------------------------------------------------------------
* public List buildQueryIndexRunSQL(Table table, boolean metadata)
* public LinkedHashMap indexs(int index, boolean create, Table table, LinkedHashMap indexs, DataSet set) throws Exception
* public LinkedHashMap indexs(boolean create, Table table, LinkedHashMap indexs, SqlRowSet set) throws Exception
* public LinkedHashMap indexs(boolean create, LinkedHashMap indexs, DatabaseMetaData dbmd, Table table, boolean unique, boolean approximate) throws Exception
******************************************************************************************************************/
/**
* 查询表上的列
* @param table 表
* @param name name
* @return sql
*/
@Override
public List buildQueryIndexRunSQL(Table table, String name){
return super.buildQueryIndexRunSQL(table, name);
}
/**
*
* @param index 第几条查询SQL 对照 buildQueryIndexRunSQL 返回顺序
* @param create 上一步没有查到的,这一步是否需要新创建
* @param table 表
* @param indexs 上一步查询结果
* @param set set
* @return indexs indexs
* @throws Exception 异常
*/
@Override
public LinkedHashMap indexs(int index, boolean create, Table table, LinkedHashMap indexs, DataSet set) throws Exception{
return super.indexs(index, create, table, indexs, set);
}
@Override
public LinkedHashMap indexs(boolean create, Table table, LinkedHashMap indexs, SqlRowSet set) throws Exception{
return super.indexs(create, table, indexs, set);
}
@Override
public LinkedHashMap indexs(boolean create, LinkedHashMap indexs, DatabaseMetaData dbmd, Table table, boolean unique, boolean approximate) throws Exception{
return super.indexs(create, indexs, dbmd, table, unique, approximate);
}
/* *****************************************************************************************************************
* constraint
* -----------------------------------------------------------------------------------------------------------------
* public List buildQueryConstraintRunSQL(Table table, boolean metadata)
* public LinkedHashMap constraints(int constraint, boolean create, Table table, LinkedHashMap constraints, DataSet set) throws Exception
* public LinkedHashMap constraints(boolean create, Table table, LinkedHashMap constraints, SqlRowSet set) throws Exception
* public LinkedHashMap constraints(boolean create, Table table, LinkedHashMap constraints, ResultSet set) throws Exception
******************************************************************************************************************/
/**
* 查询表上的约束
* @param table 表
* @param metadata 是否根据metadata | 查询系统表
* @return sqls
*/
@Override
public List buildQueryConstraintRunSQL(Table table, boolean metadata) throws Exception{
return super.buildQueryConstraintRunSQL(table, metadata);
}
/**
* 根据查询结果集构造Constraint
* @param index 第几条查询SQL 对照 buildQueryConstraintRunSQL 返回顺序
* @param create 上一步没有查到的,这一步是否需要新创建
* @param table 表
* @param constraints 上一步查询结果
* @param set set
* @return constraints constraints
* @throws Exception 异常
*/
@Override
public LinkedHashMap constraints(int index , boolean create, Table table, LinkedHashMap constraints, DataSet set) throws Exception{
return super.constraints(index, create, table, constraints, set);
}
@Override
public LinkedHashMap constraints(boolean create, Table table, LinkedHashMap constraints, SqlRowSet set) throws Exception{
return super.constraints(create, table, constraints, set);
}
@Override
public LinkedHashMap constraints(boolean create, Table table, LinkedHashMap constraints, ResultSet set) throws Exception{
return super.constraints(create, table, constraints, set);
}
/* *****************************************************************************************************************
*
* DDL
*
* =================================================================================================================
* table : 表
* master table : 主表
* partition table : 分区表
* column : 列
* tag : 标签
* index : 索引
* constraint : 约束
*
******************************************************************************************************************/
/* *****************************************************************************************************************
* table
* -----------------------------------------------------------------------------------------------------------------
* public List buildCreateRunSQL(Table table);
* public String buildCreateCommentRunSQL(Table table);
* public List buildAlterRunSQL(Table table)
* public List buildAlterRunSQL(Table table, Collection columns);
* public String buildRenameRunSQL(Table table);
* public String buildChangeCommentRunSQL(Table table);
* public String buildDropRunSQL(Table table);
* public StringBuilder checkTableExists(StringBuilder builder, boolean exists)
* public StringBuilder primary(StringBuilder builder, Table table)
* public StringBuilder comment(StringBuilder builder, Table table)
* public StringBuilder name(StringBuilder builder, Table table)
******************************************************************************************************************/
@Override
public List buildCreateRunSQL(Table table) throws Exception{
return super.buildCreateRunSQL(table);
}
/**
* 添加表备注(表创建完成后调用,创建过程能添加备注的不需要实现)
* @param table 表
* @return sql
* @throws Exception 异常
*/
public String buildCreateCommentRunSQL(Table table) throws Exception {
return super.buildCreateCommentRunSQL(table);
}
@Override
public List buildAlterRunSQL(Table table) throws Exception{
return super.buildAlterRunSQL(table);
}
/**
* 修改列
* 有可能生成多条SQL,根据数据库类型优先合并成一条执行
* @param table 表
* @param columns 列
* @return List
*/
public List buildAlterRunSQL(Table table, Collection columns) throws Exception{
return super.buildAlterRunSQL(table, columns);
}
/**
* 修改表名
*
* 一般不直接调用,如果需要由buildAlterRunSQL内部统一调用
* @param table 表
* @return String
*/
@Override
public String buildRenameRunSQL(Table table) throws Exception{
return super.buildRenameRunSQL(table);
}
@Override
public String buildChangeCommentRunSQL(Table table) throws Exception{
return super.buildChangeCommentRunSQL(table);
}
/**
* 删除表
* @param table 表
* @return String
*/
@Override
public String buildDropRunSQL(Table table) throws Exception{
return super.buildDropRunSQL(table);
}
@Override
public StringBuilder checkTableExists(StringBuilder builder, boolean exists){
return builder;
}
/**
* 主键
* @param builder builder
* @param table 表
* @return builder
*/
@Override
public StringBuilder primary(StringBuilder builder, Table table){
List pks = table.primarys();
if(pks.size()>0){
builder.append(",PRIMARY KEY (");
int idx = 0;
for(Column pk:pks){
if(idx > 0){
builder.append(",");
}
SQLUtil.delimiter(builder, pk.getName(), getDelimiterFr(), getDelimiterTo());
String order = pk.getOrder();
if(BasicUtil.isNotEmpty(order)){
builder.append(" ").append(order);
}
idx ++;
}
builder.append(")");
}
return builder;
}
/**
* 备注
*
* @param builder builder
* @param table 表
* @return builder
*/
@Override
public StringBuilder comment(StringBuilder builder, Table table){
return super.comment(builder, table);
}
/**
* 构造完整表名
* @param builder builder
* @param table 表
* @return StringBuilder
*/
@Override
public StringBuilder name(StringBuilder builder, Table table){
return super.name(builder, table);
}
/* *****************************************************************************************************************
* master table
* -----------------------------------------------------------------------------------------------------------------
* public List buildCreateRunSQL(MasterTable master);
* public String buildCreateCommentRunSQL(MasterTable table);
* public List buildAlterRunSQL(MasterTable master);
* public String buildDropRunSQL(MasterTable master);
* public String buildRenameRunSQL(MasterTable master);
* public String buildChangeCommentRunSQL(MasterTable master);
******************************************************************************************************************/
/**
* 创建主表
* @param master table
* @return String
*/
@Override
public List buildCreateRunSQL(MasterTable master) throws Exception{
return super.buildCreateRunSQL(master);
}
@Override
public List buildAlterRunSQL(MasterTable master) throws Exception{
return super.buildAlterRunSQL(master);
}
@Override
public String buildDropRunSQL(MasterTable master) throws Exception{
return super.buildDropRunSQL(master);
}
@Override
public String buildRenameRunSQL(MasterTable table) throws Exception{
return super.buildRenameRunSQL(table);
}
@Override
public String buildChangeCommentRunSQL(MasterTable table) throws Exception{
return super.buildChangeCommentRunSQL(table);
}
/* *****************************************************************************************************************
* partition table
* -----------------------------------------------------------------------------------------------------------------
* public String buildCreateRunSQL(PartitionTable table);
* public List buildAlterRunSQL(PartitionTable table);
* public String buildDropRunSQL(PartitionTable table);
* public String buildRenameRunSQL(PartitionTable table);
* public String buildChangeCommentRunSQL(PartitionTable table);
******************************************************************************************************************/
/**
* 创建分区表
* @param table 表
* @return String
*/
@Override
public List buildCreateRunSQL(PartitionTable table) throws Exception{
return super.buildCreateRunSQL(table);
}
@Override
public List buildAlterRunSQL(PartitionTable table) throws Exception{
return super.buildAlterRunSQL(table);
}
@Override
public String buildDropRunSQL(PartitionTable table) throws Exception{
return super.buildDropRunSQL(table);
}
@Override
public String buildRenameRunSQL(PartitionTable table) throws Exception{
return super.buildRenameRunSQL(table);
}
@Override
public String buildChangeCommentRunSQL(PartitionTable table) throws Exception{
return super.buildChangeCommentRunSQL(table);
}
/* *****************************************************************************************************************
* column
* -----------------------------------------------------------------------------------------------------------------
* public String alterColumnKeyword()
* public List buildAddRunSQL(Column column, boolean slice)
* public List buildAddRunSQL(Column column)
* public List buildAlterRunSQL(Column column, boolean slice)
* public List buildAlterRunSQL(Column column)
* public String buildDropRunSQL(Column column, boolean slice)
* public String buildDropRunSQL(Column column)
* public String buildRenameRunSQL(Column column)
* public List buildChangeTypeRunSQL(Column column)
* public String buildChangeDefaultRunSQL(Column column)
* public String buildChangeNullableRunSQL(Column column)
* public String buildChangeCommentRunSQL(Column column)
* public String buildCreateCommentRunSQL(Column column)
* public StringBuilder define(StringBuilder builder, Column column)
* public StringBuilder type(StringBuilder builder, Column column)
* public boolean isIgnorePrecision(Column column);
* public boolean isIgnoreScale(Column column);
* public Boolean checkIgnorePrecision(String datatype);
* public Boolean checkIgnoreScale(String datatype);
* public StringBuilder nullable(StringBuilder builder, Column column)
* public StringBuilder charset(StringBuilder builder, Column column)
* public StringBuilder defaultValue(StringBuilder builder, Column column)
* public StringBuilder increment(StringBuilder builder, Column column)
* public StringBuilder onupdate(StringBuilder builder, Column column)
* public StringBuilder position(StringBuilder builder, Column column)
* public StringBuilder comment(StringBuilder builder, Column column)
* public StringBuilder checkColumnExists(StringBuilder builder, boolean exists)
******************************************************************************************************************/
@Override
public String alterColumnKeyword(){
return super.alterColumnKeyword();
}
/**
* 添加列
* ALTER TABLE HR_USER ADD COLUMN UPT_TIME datetime CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci DEFAULT NULL ON UPDATE CURRENT_TIMESTAMP comment '修改时间' AFTER ID;
* @param column 列
* @param slice 是否只生成片段(不含alter table部分,用于DDL合并)
* @return String
*/
@Override
public List buildAddRunSQL(Column column, boolean slice) throws Exception{
return super.buildAddRunSQL(column, slice);
}
@Override
public List buildAddRunSQL(Column column) throws Exception{
return buildAddRunSQL(column, false);
}
/**
* 修改列 ALTER TABLE HR_USER CHANGE UPT_TIME UPT_TIME datetime DEFAULT NULL ON UPDATE CURRENT_TIMESTAMP comment '修改时间' AFTER ID;
* @param column 列
* @param slice 是否只生成片段(不含alter table部分,用于DDL合并)
* @return sqls
*/
@Override
public List buildAlterRunSQL(Column column, boolean slice) throws Exception{
return super.buildAlterRunSQL(column, slice);
}
@Override
public List buildAlterRunSQL(Column column) throws Exception{
return buildAlterRunSQL(column, false);
}
/**
* 删除列
* ALTER TABLE HR_USER DROP COLUMN NAME;
* @param column 列
* @param slice 是否只生成片段(不含alter table部分,用于DDL合并)
* @return String
*/
@Override
public String buildDropRunSQL(Column column, boolean slice) throws Exception{
return super.buildDropRunSQL(column, slice);
}
/**
* 修改列名
*
* 一般不直接调用,如果需要由buildAlterRunSQL内部统一调用
* @param column 列
* @return String
*/
@Override
public String buildRenameRunSQL(Column column) throws Exception {
return super.buildRenameRunSQL(column);
}
/**
* 修改数据类型
*
* 一般不直接调用,如果需要由buildAlterRunSQL内部统一调用
* @param column 列
* @return sql
*/
@Override
public List buildChangeTypeRunSQL(Column column) throws Exception{
return super.buildChangeTypeRunSQL(column);
}
/**
* 修改默认值
*
* 一般不直接调用,如果需要由buildAlterRunSQL内部统一调用
* @param column 列
* @return String
*/
@Override
public String buildChangeDefaultRunSQL(Column column) throws Exception{
return super.buildChangeDefaultRunSQL(column);
}
/**
* 修改非空限制
*
* 一般不直接调用,如果需要由buildAlterRunSQL内部统一调用
* @param column 列
* @return String
*/
@Override
public String buildChangeNullableRunSQL(Column column) throws Exception{
return super.buildChangeNullableRunSQL(column);
}
/**
* 添加表备注(表创建完成后调用,创建过程能添加备注的不需要实现)
* @param column 列
* @return sql
* @throws Exception 异常
*/
public String buildCreateCommentRunSQL(Column column) throws Exception {
return buildChangeCommentRunSQL(column);
}
/**
* 修改备注
*
* 一般不直接调用,如果需要由buildAlterRunSQL内部统一调用
* @param column 列
* @return String
*/
@Override
public String buildChangeCommentRunSQL(Column column) throws Exception{
return super.buildChangeCommentRunSQL(column);
}
/**
* 定义列
* @param builder builder
* @param column 列
* @return builder
*/
@Override
public StringBuilder define(StringBuilder builder, Column column){
return super.define(builder, column);
}
/**
* 数据类型
* @param builder builder
* @param column 列
* @return builder
*/
@Override
public StringBuilder type(StringBuilder builder, Column column){
return super.type(builder, column);
}
/**
* 编码
* @param builder builder
* @param column 列
* @return builder
*/
@Override
public StringBuilder nullable(StringBuilder builder, Column column){
if(column.isAutoIncrement() == 1 || column.isPrimaryKey() ==1){
return builder;
}
return super.nullable(builder, column);
}
/**
* 编码
* @param builder builder
* @param column 列
* @return builder
*/
@Override
public StringBuilder charset(StringBuilder builder, Column column){
return super.charset(builder, column);
}
/**
* 默认值
* @param builder builder
* @param column 列
* @return builder
*/
@Override
public StringBuilder defaultValue(StringBuilder builder, Column column){
return super.defaultValue(builder, column);
}
/**
* 递增列
* @param builder builder
* @param column 列
* @return builder
*/
@Override
public StringBuilder increment(StringBuilder builder, Column column){
if(column.isAutoIncrement() == 1){
// builder.append(" NOT NULL PRIMARY KEY KEYGENERATED ALWAYS AS IDENTITY (START WITH ").append(column.getIncrementSeed()).append(",INCREMENT BY ").append(column.getIncrementStep()).append(")");
builder.append(" GENERATED ALWAYS AS IDENTITY (START WITH 1, INCREMENT BY 1)");
}
return builder;
}
/**
* 更新行事件
* @param builder builder
* @param column 列
* @return builder
*/
@Override
public StringBuilder onupdate(StringBuilder builder, Column column){
return super.onupdate(builder, column);
}
/**
* 位置
*
* @param builder builder
* @param column 列
* @return builder
*/
@Override
public StringBuilder position(StringBuilder builder, Column column){
return super.position(builder, column);
}
/**
* 备注
*
* @param builder builder
* @param column 列
* @return builder
*/
@Override
public StringBuilder comment(StringBuilder builder, Column column){
return super.comment(builder, column);
}
/**
* 创建或删除列时检测是否存在
* @param builder builder
* @param exists exists
* @return sql
*/
@Override
public StringBuilder checkColumnExists(StringBuilder builder, boolean exists){
return super.checkColumnExists(builder, exists);
}
/* *****************************************************************************************************************
* tag
* -----------------------------------------------------------------------------------------------------------------
* public String buildAddRunSQL(Tag tag);
* public List buildAlterRunSQL(Tag tag);
* public String buildDropRunSQL(Tag tag);
* public String buildRenameRunSQL(Tag tag);
* public String buildChangeDefaultRunSQL(Tag tag);
* public String buildChangeNullableRunSQL(Tag tag);
* public String buildChangeCommentRunSQL(Tag tag);
* public List buildChangeTypeRunSQL(Tag tag);
* public StringBuilder checkTagExists(StringBuilder builder, boolean exists)
******************************************************************************************************************/
/**
* 添加标签
* ALTER TABLE HR_USER ADD TAG UPT_TIME datetime CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci DEFAULT NULL ON UPDATE CURRENT_TIMESTAMP comment '修改时间' AFTER ID;
* @param tag 标签
* @return String
*/
@Override
public String buildAddRunSQL(Tag tag) throws Exception{
return super.buildAddRunSQL(tag);
}
/**
* 修改标签 ALTER TABLE HR_USER CHANGE UPT_TIME UPT_TIME datetime DEFAULT NULL ON UPDATE CURRENT_TIMESTAMP comment '修改时间' AFTER ID;
* @param tag 标签
* @return sqls
*/
@Override
public List buildAlterRunSQL(Tag tag) throws Exception{
return super.buildAlterRunSQL(tag);
}
/**
* 删除标签
* ALTER TABLE HR_USER DROP TAG NAME;
* @param tag 标签
* @return String
*/
@Override
public String buildDropRunSQL(Tag tag) throws Exception{
return super.buildDropRunSQL(tag);
}
/**
* 修改标签名
*
* 一般不直接调用,如果需要由buildAlterRunSQL内部统一调用
* @param tag 标签
* @return String
*/
@Override
public String buildRenameRunSQL(Tag tag) throws Exception{
return super.buildRenameRunSQL(tag);
}
/**
* 修改默认值
*
* 一般不直接调用,如果需要由buildAlterRunSQL内部统一调用
* @param tag 标签
* @return String
*/
@Override
public String buildChangeDefaultRunSQL(Tag tag) throws Exception{
return super.buildChangeDefaultRunSQL(tag);
}
/**
* 修改非空限制
*
* 一般不直接调用,如果需要由buildAlterRunSQL内部统一调用
* @param tag 标签
* @return String
*/
@Override
public String buildChangeNullableRunSQL(Tag tag) throws Exception{
return super.buildChangeNullableRunSQL(tag);
}
/**
* 修改备注
*
* 一般不直接调用,如果需要由buildAlterRunSQL内部统一调用
* @param tag 标签
* @return String
*/
@Override
public String buildChangeCommentRunSQL(Tag tag) throws Exception{
return super.buildChangeCommentRunSQL(tag);
}
/**
* 修改数据类型
*
* 一般不直接调用,如果需要由buildAlterRunSQL内部统一调用
* @param tag 标签
* @return sql
*/
@Override
public List buildChangeTypeRunSQL(Tag tag) throws Exception{
return super.buildChangeTypeRunSQL(tag);
}
/**
* 创建或删除标签时检测是否存在
* @param builder builder
* @param exists exists
* @return sql
*/
@Override
public StringBuilder checkTagExists(StringBuilder builder, boolean exists){
return super.checkTagExists(builder, exists);
}
/* *****************************************************************************************************************
* primary
* -----------------------------------------------------------------------------------------------------------------
* public String buildAddRunSQL(PrimaryKey primary) throws Exception
* public List buildAlterRunSQL(PrimaryKey primary) throws Exception
* public String buildDropRunSQL(PrimaryKey primary) throws Exception
* public String buildRenameRunSQL(PrimaryKey primary) throws Exception
******************************************************************************************************************/
/**
* 添加主键
* @param primary 主键
* @return String
*/
@Override
public String buildAddRunSQL(PrimaryKey primary) throws Exception{
return super.buildAddRunSQL(primary);
}
/**
* 修改主键
* 有可能生成多条SQL
* @param primary 主键
* @return List
*/
@Override
public List buildAlterRunSQL(PrimaryKey primary) throws Exception{
return super.buildAlterRunSQL(primary);
}
/**
* 删除主键
* @param primary 主键
* @return String
*/
@Override
public String buildDropRunSQL(PrimaryKey primary) throws Exception{
return super.buildDropRunSQL(primary);
}
/**
* 修改主键名
* 一般不直接调用,如果需要由buildAlterRunSQL内部统一调用
* @param primary 主键
* @return String
*/
@Override
public String buildRenameRunSQL(PrimaryKey primary) throws Exception{
return super.buildRenameRunSQL(primary);
}
/* *****************************************************************************************************************
* index
* -----------------------------------------------------------------------------------------------------------------
* public String buildAddRunSQL(Index index) throws Exception
* public List buildAlterRunSQL(Index index) throws Exception
* public String buildDropRunSQL(Index index) throws Exception
* public String buildRenameRunSQL(Index index) throws Exception
******************************************************************************************************************/
/**
* 添加索引
* @param index 索引
* @return String
*/
@Override
public String buildAddRunSQL(Index index) throws Exception{
return super.buildAddRunSQL(index);
}
/**
* 修改索引
* 有可能生成多条SQL
* @param index 索引
* @return List
*/
@Override
public List buildAlterRunSQL(Index index) throws Exception{
return super.buildAlterRunSQL(index);
}
/**
* 删除索引
* @param index 索引
* @return String
*/
@Override
public String buildDropRunSQL(Index index) throws Exception{
return super.buildDropRunSQL(index);
}
/**
* 修改索引名
* 一般不直接调用,如果需要由buildAlterRunSQL内部统一调用
* @param index 索引
* @return String
*/
@Override
public String buildRenameRunSQL(Index index) throws Exception{
return super.buildRenameRunSQL(index);
}
/* *****************************************************************************************************************
* constraint
* -----------------------------------------------------------------------------------------------------------------
* public String buildAddRunSQL(Constraint constraint) throws Exception
* public List buildAlterRunSQL(Constraint constraint) throws Exception
* public String buildDropRunSQL(Constraint constraint) throws Exception
* public String buildRenameRunSQL(Constraint constraint) throws Exception
******************************************************************************************************************/
/**
* 添加索约束
* @param constraint 约束
* @return String
*/
@Override
public String buildAddRunSQL(Constraint constraint) throws Exception{
return super.buildAddRunSQL(constraint);
}
/**
* 修改约束
* 有可能生成多条SQL
* @param constraint 约束
* @return List
*/
@Override
public List buildAlterRunSQL(Constraint constraint) throws Exception{
return super.buildAlterRunSQL(constraint);
}
/**
* 删除约束
* @param constraint 约束
* @return String
*/
@Override
public String buildDropRunSQL(Constraint constraint) throws Exception{
return super.buildDropRunSQL(constraint);
}
/**
* 修改约束名
* 一般不直接调用,如果需要由buildAlterRunSQL内部统一调用
* @param constraint 约束
* @return String
*/
@Override
public String buildRenameRunSQL(Constraint constraint) throws Exception{
return super.buildRenameRunSQL(constraint);
}
/* *****************************************************************************************************************
*
* common
*------------------------------------------------------------------------------------------------------------------
* public boolean isBooleanColumn(Column column)
* public boolean isNumberColumn(Column column)
* public boolean isCharColumn(Column column)
* public String value(Column column, SQL_BUILD_IN_VALUE value)
* public String type(String type)
* public String type2class(String type)
******************************************************************************************************************/
@Override
public boolean isBooleanColumn(Column column) {
return super.isBooleanColumn(column);
}
/**
* 是否同数字
* @param column 列
* @return boolean
*/
@Override
public boolean isNumberColumn(Column column){
return super.isNumberColumn(column);
}
@Override
public boolean isCharColumn(Column column) {
return super.isCharColumn(column);
}
/**
* 内置函数
* @param value SQL_BUILD_IN_VALUE
* @return String
*/
public String value(Column column, SQL_BUILD_IN_VALUE value){
if(value == SQL_BUILD_IN_VALUE.CURRENT_TIME){
return "CURRENT TIMESTAMP";
}
return null;
}
public String concat(String ... args){
return concatOr(args);
}
}
© 2015 - 2025 Weber Informatics LLC | Privacy Policy