类 TemplateJDBCAdapter

所有已实现的接口:
DriverAdapter, JDBCAdapter

public abstract class TemplateJDBCAdapter extends AbstractJDBCAdapter
  • 构造器详细资料

    • TemplateJDBCAdapter

      public TemplateJDBCAdapter()
  • 方法详细资料

    • checkSchema

      public <T extends org.anyline.metadata.BaseMetadata> void checkSchema(DataRuntime runtime, DataSource dataSource, T meta)
      指定者:
      checkSchema 在接口中 JDBCAdapter
      覆盖:
      checkSchema 在类中 AbstractJDBCAdapter
    • checkSchema

      public <T extends org.anyline.metadata.BaseMetadata> void checkSchema(DataRuntime runtime, Connection con, T meta)
      指定者:
      checkSchema 在接口中 JDBCAdapter
      覆盖:
      checkSchema 在类中 AbstractJDBCAdapter
    • checkSchema

      public <T extends org.anyline.metadata.BaseMetadata> void checkSchema(DataRuntime runtime, T meta)
      根据运行环境识别 catalog与schema
      指定者:
      checkSchema 在接口中 DriverAdapter
      覆盖:
      checkSchema 在类中 AbstractJDBCAdapter
      类型参数:
      T - BaseMetadata
      参数:
      runtime - 运行环境主要包含驱动适配器 数据源或客户端
      meta - BaseMetadata
    • correctSchemaFromJDBC

      public <T extends org.anyline.metadata.BaseMetadata> void correctSchemaFromJDBC(DataRuntime runtime, T meta, String catalog, String schema, boolean overrideRuntime, boolean overrideMeta)
      识别根据jdbc返回的catalog与schema, 部分数据库(如mysql)系统表与jdbc标准可能不一致根据实际情况处理
      注意一定不要处理从SQL中返回的,应该在SQL中处理好
      类型参数:
      T - BaseMetadata
      参数:
      meta - BaseMetadata
      catalog - catalog
      schema - schema
      overrideRuntime - 如果runtime中有值,是否覆盖,注意结果集中可能跨多个schema,所以一般不要覆盖runtime,从con获取的可以覆盖ResultSet中获取的不要覆盖
      overrideMeta - 如果meta中有值,是否覆盖
    • correctSchemaFromJDBC

      public String[] correctSchemaFromJDBC(String catalog, String schema)
      在调用jdbc接口前处理业务中的catalog, schema, 部分数据库(如mysql)业务系统与dbc标准可能不一致根据实际情况处理
      参数:
      catalog - catalog
      schema - schema
      返回:
      String[]
    • identity

      public boolean identity(DataRuntime runtime, String random, Object data, ConfigStore configs, org.springframework.jdbc.support.KeyHolder keyholder)
      insert[命令执行后] insert执行后 通过KeyHolder获取主键值赋值给data
      指定者:
      identity 在接口中 JDBCAdapter
      覆盖:
      identity 在类中 AbstractJDBCAdapter
      参数:
      random - log标记
      data - data
      keyholder - keyholder
      返回:
      boolean
    • columnMetadataLengthRefer

      public String columnMetadataLengthRefer(DataRuntime runtime, org.anyline.metadata.type.TypeMetadata meta)
      column[结果集封装]
      (方法1)
      元数据长度列
      指定者:
      columnMetadataLengthRefer 在接口中 DriverAdapter
      覆盖:
      columnMetadataLengthRefer 在类中 AbstractDriverAdapter
      参数:
      runtime - 运行环境主要包含驱动适配器 数据源或客户端
      meta - TypeMetadata
      返回:
      String
    • columnMetadataPrecisionRefer

      public String columnMetadataPrecisionRefer(DataRuntime runtime, org.anyline.metadata.type.TypeMetadata meta)
      column[结果集封装]
      (方法1)
      元数据数字有效位数列
      指定者:
      columnMetadataPrecisionRefer 在接口中 DriverAdapter
      覆盖:
      columnMetadataPrecisionRefer 在类中 AbstractDriverAdapter
      参数:
      runtime - 运行环境主要包含驱动适配器 数据源或客户端
      meta - TypeMetadata
      返回:
      String
    • columnMetadataScaleRefer

      public String columnMetadataScaleRefer(DataRuntime runtime, org.anyline.metadata.type.TypeMetadata meta)
      column[结果集封装]
      (方法1)
      元数据数字小数位数列
      指定者:
      columnMetadataScaleRefer 在接口中 DriverAdapter
      覆盖:
      columnMetadataScaleRefer 在类中 AbstractDriverAdapter
      参数:
      runtime - 运行环境主要包含驱动适配器 数据源或客户端
      meta - TypeMetadata
      返回:
      String
    • insertFoot

      public String insertFoot(ConfigStore configs, LinkedHashMap<String,org.anyline.metadata.Column> columns)
      覆盖:
      insertFoot 在类中 AbstractJDBCAdapter
    • column

      public org.anyline.metadata.Column column(DataRuntime runtime, org.anyline.metadata.Column column, ResultSetMetaData rsm, int index)
      column[结果集封装-子流程](方法2)
      方法(2)表头内部遍历
      指定者:
      column 在接口中 JDBCAdapter
      覆盖:
      column 在类中 AbstractJDBCAdapter
      参数:
      runtime - 运行环境主要包含驱动适配器 数据源或客户端
      column - column
      rsm - ResultSetMetaData
      index - 第几列
      返回:
      Column
    • columns

      public <T extends org.anyline.metadata.Column> LinkedHashMap<String,T> columns(DataRuntime runtime, boolean create, LinkedHashMap<String,T> columns, DatabaseMetaData dbmd, org.anyline.metadata.Table table, String pattern) throws Exception
      column[结果集封装]
      (方法3)
      有表名的情况下可用
      根据jdbc.datasource.connection.DatabaseMetaData获取指定表的列数据
      指定者:
      columns 在接口中 JDBCAdapter
      覆盖:
      columns 在类中 AbstractJDBCAdapter
      类型参数:
      T - Column
      参数:
      runtime - 运行环境主要包含驱动适配器 数据源或客户端
      create - 上一步没有查到的, 这一步是否需要新创建
      columns - columns
      dbmd - DatabaseMetaData
      table - 表
      pattern - 列名称通配符
      返回:
      LinkedHashMap
      抛出:
      Exception - 异常
    • column

      public org.anyline.metadata.Column column(DataRuntime runtime, org.anyline.metadata.Column column, ResultSet rs)
      column[结果集封装-子流程](方法3)
      方法(3)内部遍历
      指定者:
      column 在接口中 JDBCAdapter
      覆盖:
      column 在类中 AbstractJDBCAdapter
      参数:
      runtime - 运行环境主要包含驱动适配器 数据源或客户端
      column - column
      rs - ResultSet
      返回:
      Column
    • columns

      public <T extends org.anyline.metadata.Column> LinkedHashMap<String,T> columns(DataRuntime runtime, boolean create, LinkedHashMap<String,T> columns, org.anyline.metadata.Table table, org.springframework.jdbc.support.rowset.SqlRowSet set) throws Exception
      column[结果集封装]
      (方法4)
      解析查询结果metadata(0=1)
      指定者:
      columns 在接口中 JDBCAdapter
      覆盖:
      columns 在类中 AbstractJDBCAdapter
      类型参数:
      T - Column
      参数:
      runtime - 运行环境主要包含驱动适配器 数据源或客户端
      create - 上一步没有查到的, 这一步是否需要新创建
      columns - columns
      table - 表
      set - SqlRowSet由spring封装过的结果集ResultSet
      返回:
      LinkedHashMap
      抛出:
      Exception
    • column

      public org.anyline.metadata.Column column(DataRuntime runtime, org.anyline.metadata.Column column, org.springframework.jdbc.support.rowset.SqlRowSetMetaData rsm, int index)
      column[结果集封装-子流程](方法4)
      内部遍历
      columns(DataRuntime runtime, boolean create, LinkedHashMap columns, Table table, SqlRowSet set)遍历内部
      根据SqlRowSetMetaData获取列属性 jdbc.queryForRowSet(where 1=0)
      指定者:
      column 在接口中 JDBCAdapter
      覆盖:
      column 在类中 AbstractJDBCAdapter
      参数:
      runtime - 运行环境主要包含驱动适配器 数据源或客户端
      column - 获取的数据赋值给column如果为空则新创建一个
      rsm - 通过spring封装过的SqlRowSet获取的SqlRowSetMetaData
      index - 第几列
      返回:
      Column
    • row

      public org.anyline.entity.DataRow row(boolean system, DataRuntime runtime, LinkedHashMap<String,org.anyline.metadata.Column> metadatas, ConfigStore configs, ResultSet rs)
      query[结果集封装-子流程] 封装查询结果行, 在外层遍历中修改rs下标
      指定者:
      row 在接口中 JDBCAdapter
      覆盖:
      row 在类中 AbstractJDBCAdapter
      参数:
      system - 系统表不检测列属性
      runtime - runtime
      metadatas - metadatas
      rs - jdbc返回结果
      返回:
      DataRow
    • value

      public String value(DataRuntime runtime, org.anyline.metadata.Column column, DriverAdapter.SQL_BUILD_IN_VALUE value)
      内置函数 多种数据库兼容时需要
      指定者:
      value 在接口中 DriverAdapter
      覆盖:
      value 在类中 AbstractDriverAdapter
      参数:
      value - SQL_BUILD_IN_VALUE
      返回:
      String
    • concat

      public String concat(DataRuntime runtime, String... args)
      拼接字符串
      指定者:
      concat 在接口中 DriverAdapter
      覆盖:
      concat 在类中 AbstractJDBCAdapter
      参数:
      runtime - 运行环境主要包含驱动适配器 数据源或客户端
      args - args
      返回:
      String
    • dummy

      protected String dummy()
      伪表
      覆盖:
      dummy 在类中 AbstractJDBCAdapter
      返回:
      String