org.redkale.service

## 类 DataSourceService

- java.lang.Object
- - org.redkale.service.DataSourceService

- 所有已实现的接口:
    java.lang.AutoCloseable, Service, DataSource

      @AutoLoad(value=false)
       @ResourceType(value={DataSourceService.class,DataSource.class})
      public class DataSourceService
      extends java.lang.Object
      implements DataSource, Service, java.lang.AutoCloseable

  DataSource对应的Service类， 该类主要特点是将所有含FilterBean参数的方法重载成FilterNode对应的方法。

  详情见: https://redkale.org

- - ### 构造器概要

    构造器
    构造器和说明
    `DataSourceService()`

  - ### 方法概要

    所有方法 实例方法 具体方法
    限定符和类型 | 方法和说明
    --- | ---
    `void` | `close()`
    `<T> int` | `delete(java.lang.Class<T> clazz, FilterNode node)`
    `<T> int` | `delete(java.lang.Class<T> clazz, java.io.Serializable... ids)` 根据主键值删除数据 等价SQL: DELETE FROM WHERE {primary} IN {ids}
    `<T> int` | `delete(T... values)` 删除对象， 必须是Entity对象
    `int[]` | `directExecute(java.lang.String... sqls)` 直接本地执行SQL语句进行增删改操作，远程模式不可用 通常用于复杂的更新操作
    `void` | `directQuery(java.lang.String sql, java.util.function.Consumer<java.sql.ResultSet> consumer)` 直接本地执行SQL语句进行查询，远程模式不可用 通常用于复杂的关联查询
    `<T> boolean` | `exists(java.lang.Class<T> clazz, FilterBean bean)`
    `<T> boolean` | `exists(java.lang.Class<T> clazz, FilterNode node)`
    `<T> boolean` | `exists(java.lang.Class<T> clazz, java.io.Serializable pk)`
    `<T> T` | `find(java.lang.Class<T> clazz, FilterBean bean)`
    `<T> T` | `find(java.lang.Class<T> clazz, FilterNode node)`
    `<T> T` | `find(java.lang.Class<T> clazz, SelectColumn selects, FilterBean bean)`
    `<T> T` | `find(java.lang.Class<T> clazz, SelectColumn selects, FilterNode node)`
    `<T> T` | `find(java.lang.Class<T> clazz, SelectColumn selects, java.io.Serializable pk)`
    `<T> T` | `find(java.lang.Class<T> clazz, java.io.Serializable pk)` 根据主键获取对象
    `<T> T` | `find(java.lang.Class<T> clazz, java.lang.String column, java.io.Serializable key)`
    `java.lang.Number` | `getNumberResult(java.lang.Class entityClass, FilterFunc func, java.lang.Number defVal, java.lang.String column)`
    `java.lang.Number` | `getNumberResult(java.lang.Class entityClass, FilterFunc func, java.lang.Number defVal, java.lang.String column, FilterBean bean)`
    `java.lang.Number` | `getNumberResult(java.lang.Class entityClass, FilterFunc func, java.lang.Number defVal, java.lang.String column, FilterNode node)`
    `java.lang.Number` | `getNumberResult(java.lang.Class entityClass, FilterFunc func, java.lang.String column)`
    `java.lang.Number` | `getNumberResult(java.lang.Class entityClass, FilterFunc func, java.lang.String column, FilterBean bean)`
    `java.lang.Number` | `getNumberResult(java.lang.Class entityClass, FilterFunc func, java.lang.String column, FilterNode node)`
    `<T> void` | `insert(T... values)` 新增对象， 必须是Entity对象
    `<T,V extends java.io.Serializable> java.util.List<V>` | `queryColumnList(java.lang.String selectedColumn, java.lang.Class<T> clazz, FilterBean bean)`
    `<T,V extends java.io.Serializable> java.util.List<V>` | `queryColumnList(java.lang.String selectedColumn, java.lang.Class<T> clazz, FilterNode node)`
    `<T,V extends java.io.Serializable> java.util.List<V>` | `queryColumnList(java.lang.String selectedColumn, java.lang.Class<T> clazz, java.lang.String column, java.io.Serializable key)`
    `<T,K extends java.io.Serializable,N extends java.lang.Number> java.util.Map<K,N>` | `queryColumnMap(java.lang.Class<T> entityClass, java.lang.String keyColumn, FilterFunc func, java.lang.String funcColumn)`
    `<T,K extends java.io.Serializable,N extends java.lang.Number> java.util.Map<K,N>` | `queryColumnMap(java.lang.Class<T> entityClass, java.lang.String keyColumn, FilterFunc func, java.lang.String funcColumn, FilterBean bean)`
    `<T,K extends java.io.Serializable,N extends java.lang.Number> java.util.Map<K,N>` | `queryColumnMap(java.lang.Class<T> entityClass, java.lang.String keyColumn, FilterFunc func, java.lang.String funcColumn, FilterNode node)`
    `<T,V extends java.io.Serializable> java.util.HashSet<V>` | `queryColumnSet(java.lang.String selectedColumn, java.lang.Class<T> clazz, FilterBean bean)`
    `<T,V extends java.io.Serializable> java.util.HashSet<V>` | `queryColumnSet(java.lang.String selectedColumn, java.lang.Class<T> clazz, FilterNode node)`
    `<T,V extends java.io.Serializable> java.util.HashSet<V>` | `queryColumnSet(java.lang.String selectedColumn, java.lang.Class<T> clazz, java.lang.String column, java.io.Serializable key)` 根据指定字段值查询对象某个字段的集合
    `<T,V extends java.io.Serializable> Sheet<V>` | `queryColumnSheet(java.lang.String selectedColumn, java.lang.Class<T> clazz, Flipper flipper, FilterBean bean)` 根据指定参数查询对象某个字段的集合
    `<T,V extends java.io.Serializable> Sheet<V>` | `queryColumnSheet(java.lang.String selectedColumn, java.lang.Class<T> clazz, Flipper flipper, FilterNode node)`
    `<T> java.util.List<T>` | `queryList(java.lang.Class<T> clazz, FilterBean bean)`
    `<T> java.util.List<T>` | `queryList(java.lang.Class<T> clazz, FilterNode node)`
    `<T> java.util.List<T>` | `queryList(java.lang.Class<T> clazz, Flipper flipper, FilterBean bean)`
    `<T> java.util.List<T>` | `queryList(java.lang.Class<T> clazz, Flipper flipper, FilterNode node)`
    `<T> java.util.List<T>` | `queryList(java.lang.Class<T> clazz, Flipper flipper, java.lang.String column, java.io.Serializable key)`
    `<T> java.util.List<T>` | `queryList(java.lang.Class<T> clazz, SelectColumn selects, FilterBean bean)`
    `<T> java.util.List<T>` | `queryList(java.lang.Class<T> clazz, SelectColumn selects, FilterNode node)`
    `<T> java.util.List<T>` | `queryList(java.lang.Class<T> clazz, SelectColumn selects, Flipper flipper, FilterBean bean)`
    `<T> java.util.List<T>` | `queryList(java.lang.Class<T> clazz, SelectColumn selects, Flipper flipper, FilterNode node)`
    `<T> java.util.List<T>` | `queryList(java.lang.Class<T> clazz, java.lang.String column, java.io.Serializable key)` 根据指定字段值查询对象集合
    `<T> Sheet<T>` | `querySheet(java.lang.Class<T> clazz, Flipper flipper, FilterBean bean)` 根据指定参数查询对象某个对象的集合页
    `<T> Sheet<T>` | `querySheet(java.lang.Class<T> clazz, Flipper flipper, FilterNode node)`
    `<T> Sheet<T>` | `querySheet(java.lang.Class<T> clazz, SelectColumn selects, Flipper flipper, FilterBean bean)`
    `<T> Sheet<T>` | `querySheet(java.lang.Class<T> clazz, SelectColumn selects, Flipper flipper, FilterNode node)`
    `<T> int` | `update(T... values)` 更新对象， 必须是Entity对象
    `<T> int` | `updateColumn(java.lang.Class<T> clazz, FilterNode node, ColumnValue... values)`
    `<T> int` | `updateColumn(java.lang.Class<T> clazz, java.io.Serializable id, ColumnValue... values)`
    `<T> int` | `updateColumn(java.lang.Class<T> clazz, java.io.Serializable id, java.lang.String column, java.io.Serializable value)`
    `<T> int` | `updateColumn(java.lang.Class<T> clazz, java.lang.String column, java.io.Serializable value, FilterNode node)`
    `<T> int` | `updateColumns(T bean, FilterNode node, java.lang.String... columns)`
    `<T> int` | `updateColumns(T bean, java.lang.String... columns)`

    - ### 从类继承的方法 java.lang.Object

      `clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait`

    - ### 从接口继承的方法 org.redkale.service.Service

      `destroy, init, version`

- - ### 构造器详细资料

    - #### DataSourceService

          public DataSourceService()

  - ### 方法详细资料

    - #### insert

          public <T> void insert(@RpcCall(value=DataCallArrayAttribute.class)
                                 T... values)

      从接口复制的说明: `DataSource`
      新增对象， 必须是Entity对象
      指定者:
        `insert` 在接口中 `DataSource`
      类型参数:
        `T` - 泛型
      参数:
        `values` - Entity对象

    - #### delete

          public <T> int delete(T... values)

      从接口复制的说明: `DataSource`
      删除对象， 必须是Entity对象
      指定者:
        `delete` 在接口中 `DataSource`
      类型参数:
        `T` - 泛型
      参数:
        `values` - Entity对象
      返回:
        删除的数据条数

    - #### delete

          public <T> int delete(java.lang.Class<T> clazz,
                                java.io.Serializable... ids)

      从接口复制的说明: `DataSource`
      根据主键值删除数据 等价SQL: DELETE FROM WHERE {primary} IN {ids}
      指定者:
        `delete` 在接口中 `DataSource`
      类型参数:
        `T` - Entity类的泛型
      参数:
        `clazz` - Entity类
        `ids` - 主键值
      返回:
        删除的数据条数

    - #### delete

          public <T> int delete(java.lang.Class<T> clazz,
                                FilterNode node)

      指定者:
        `delete` 在接口中 `DataSource`

    - #### update

          public <T> int update(T... values)

      从接口复制的说明: `DataSource`
      更新对象， 必须是Entity对象
      指定者:
        `update` 在接口中 `DataSource`
      类型参数:
        `T` - 泛型
      参数:
        `values` - Entity对象
      返回:
        更新的数据条数

    - #### updateColumn

          public <T> int updateColumn(java.lang.Class<T> clazz,
                                      java.io.Serializable id,
                                      java.lang.String column,
                                      java.io.Serializable value)

      指定者:
        `updateColumn` 在接口中 `DataSource`

    - #### updateColumn

          public <T> int updateColumn(java.lang.Class<T> clazz,
                                      java.lang.String column,
                                      java.io.Serializable value,
                                      FilterNode node)

      指定者:
        `updateColumn` 在接口中 `DataSource`

    - #### updateColumn

          public <T> int updateColumn(java.lang.Class<T> clazz,
                                      java.io.Serializable id,
                                      ColumnValue... values)

      指定者:
        `updateColumn` 在接口中 `DataSource`

    - #### updateColumn

          public <T> int updateColumn(java.lang.Class<T> clazz,
                                      FilterNode node,
                                      ColumnValue... values)

      指定者:
        `updateColumn` 在接口中 `DataSource`

    - #### updateColumns

          public <T> int updateColumns(T bean,
                                       java.lang.String... columns)

      指定者:
        `updateColumns` 在接口中 `DataSource`

    - #### updateColumns

          public <T> int updateColumns(T bean,
                                       FilterNode node,
                                       java.lang.String... columns)

      指定者:
        `updateColumns` 在接口中 `DataSource`

    - #### getNumberResult

          public java.lang.Number getNumberResult(java.lang.Class entityClass,
                                                  FilterFunc func,
                                                  java.lang.String column)

      指定者:
        `getNumberResult` 在接口中 `DataSource`

    - #### getNumberResult

          public final java.lang.Number getNumberResult(java.lang.Class entityClass,
                                                        FilterFunc func,
                                                        java.lang.String column,
                                                        FilterBean bean)

      指定者:
        `getNumberResult` 在接口中 `DataSource`

    - #### getNumberResult

          public java.lang.Number getNumberResult(java.lang.Class entityClass,
                                                  FilterFunc func,
                                                  java.lang.String column,
                                                  FilterNode node)

      指定者:
        `getNumberResult` 在接口中 `DataSource`

    - #### getNumberResult

          public java.lang.Number getNumberResult(java.lang.Class entityClass,
                                                  FilterFunc func,
                                                  java.lang.Number defVal,
                                                  java.lang.String column)

      指定者:
        `getNumberResult` 在接口中 `DataSource`

    - #### getNumberResult

          public final java.lang.Number getNumberResult(java.lang.Class entityClass,
                                                        FilterFunc func,
                                                        java.lang.Number defVal,
                                                        java.lang.String column,
                                                        FilterBean bean)

      指定者:
        `getNumberResult` 在接口中 `DataSource`

    - #### getNumberResult

          public java.lang.Number getNumberResult(java.lang.Class entityClass,
                                                  FilterFunc func,
                                                  java.lang.Number defVal,
                                                  java.lang.String column,
                                                  FilterNode node)

      指定者:
        `getNumberResult` 在接口中 `DataSource`

    - #### queryColumnMap

          public <T,K extends java.io.Serializable,N extends java.lang.Number> java.util.Map<K,N> queryColumnMap(java.lang.Class<T> entityClass,
                                                                                                                 java.lang.String keyColumn,
                                                                                                                 FilterFunc func,
                                                                                                                 java.lang.String funcColumn)

      指定者:
        `queryColumnMap` 在接口中 `DataSource`

    - #### queryColumnMap

          public final <T,K extends java.io.Serializable,N extends java.lang.Number> java.util.Map<K,N> queryColumnMap(java.lang.Class<T> entityClass,
                                                                                                                       java.lang.String keyColumn,
                                                                                                                       FilterFunc func,
                                                                                                                       java.lang.String funcColumn,
                                                                                                                       FilterBean bean)

      指定者:
        `queryColumnMap` 在接口中 `DataSource`

    - #### queryColumnMap

          public <T,K extends java.io.Serializable,N extends java.lang.Number> java.util.Map<K,N> queryColumnMap(java.lang.Class<T> entityClass,
                                                                                                                 java.lang.String keyColumn,
                                                                                                                 FilterFunc func,
                                                                                                                 java.lang.String funcColumn,
                                                                                                                 FilterNode node)

      指定者:
        `queryColumnMap` 在接口中 `DataSource`

    - #### find

          public <T> T find(java.lang.Class<T> clazz,
                            java.io.Serializable pk)

      从接口复制的说明: `DataSource`
      根据主键获取对象
      指定者:
        `find` 在接口中 `DataSource`
      类型参数:
        `T` - 泛型
      参数:
        `clazz` - Entity类
        `pk` - 主键值
      返回:
        Entity对象

    - #### find

          public <T> T find(java.lang.Class<T> clazz,
                            SelectColumn selects,
                            java.io.Serializable pk)

      指定者:
        `find` 在接口中 `DataSource`

    - #### find

          public <T> T find(java.lang.Class<T> clazz,
                            java.lang.String column,
                            java.io.Serializable key)

      指定者:
        `find` 在接口中 `DataSource`

    - #### find

          public final <T> T find(java.lang.Class<T> clazz,
                                  FilterBean bean)

      指定者:
        `find` 在接口中 `DataSource`

    - #### find

          public <T> T find(java.lang.Class<T> clazz,
                            FilterNode node)

      指定者:
        `find` 在接口中 `DataSource`

    - #### find

          public final <T> T find(java.lang.Class<T> clazz,
                                  SelectColumn selects,
                                  FilterBean bean)

      指定者:
        `find` 在接口中 `DataSource`

    - #### find

          public <T> T find(java.lang.Class<T> clazz,
                            SelectColumn selects,
                            FilterNode node)

      指定者:
        `find` 在接口中 `DataSource`

    - #### exists

          public <T> boolean exists(java.lang.Class<T> clazz,
                                    java.io.Serializable pk)

      指定者:
        `exists` 在接口中 `DataSource`

    - #### exists

          public final <T> boolean exists(java.lang.Class<T> clazz,
                                          FilterBean bean)

      指定者:
        `exists` 在接口中 `DataSource`

    - #### exists

          public <T> boolean exists(java.lang.Class<T> clazz,
                                    FilterNode node)

      指定者:
        `exists` 在接口中 `DataSource`

    - #### queryColumnSet

          public <T,V extends java.io.Serializable> java.util.HashSet<V> queryColumnSet(java.lang.String selectedColumn,
                                                                                        java.lang.Class<T> clazz,
                                                                                        java.lang.String column,
                                                                                        java.io.Serializable key)

      从接口复制的说明: `DataSource`
      根据指定字段值查询对象某个字段的集合
      指定者:
        `queryColumnSet` 在接口中 `DataSource`
      类型参数:
        `T` - Entity泛型
        `V` - 字段类型
      参数:
        `selectedColumn` - 字段名
        `clazz` - Entity类
        `column` - 过滤字段名
        `key` - 过滤字段值
      返回:
        字段值的集合

    - #### queryColumnSet

          public final <T,V extends java.io.Serializable> java.util.HashSet<V> queryColumnSet(java.lang.String selectedColumn,
                                                                                              java.lang.Class<T> clazz,
                                                                                              FilterBean bean)

      指定者:
        `queryColumnSet` 在接口中 `DataSource`

    - #### queryColumnSet

          public <T,V extends java.io.Serializable> java.util.HashSet<V> queryColumnSet(java.lang.String selectedColumn,
                                                                                        java.lang.Class<T> clazz,
                                                                                        FilterNode node)

      指定者:
        `queryColumnSet` 在接口中 `DataSource`

    - #### queryColumnList

          public <T,V extends java.io.Serializable> java.util.List<V> queryColumnList(java.lang.String selectedColumn,
                                                                                      java.lang.Class<T> clazz,
                                                                                      java.lang.String column,
                                                                                      java.io.Serializable key)

      指定者:
        `queryColumnList` 在接口中 `DataSource`

    - #### queryColumnList

          public final <T,V extends java.io.Serializable> java.util.List<V> queryColumnList(java.lang.String selectedColumn,
                                                                                            java.lang.Class<T> clazz,
                                                                                            FilterBean bean)

      指定者:
        `queryColumnList` 在接口中 `DataSource`

    - #### queryColumnList

          public <T,V extends java.io.Serializable> java.util.List<V> queryColumnList(java.lang.String selectedColumn,
                                                                                      java.lang.Class<T> clazz,
                                                                                      FilterNode node)

      指定者:
        `queryColumnList` 在接口中 `DataSource`

    - #### queryColumnSheet

          public final <T,V extends java.io.Serializable> Sheet<V> queryColumnSheet(java.lang.String selectedColumn,
                                                                                    java.lang.Class<T> clazz,
                                                                                    Flipper flipper,
                                                                                    FilterBean bean)

      从接口复制的说明: `DataSource`
      根据指定参数查询对象某个字段的集合
      指定者:
        `queryColumnSheet` 在接口中 `DataSource`
      类型参数:
        `T` - Entity泛型
        `V` - 字段类型
      参数:
        `selectedColumn` - 字段名
        `clazz` - Entity类
        `flipper` - 翻页对象
        `bean` - 过滤Bean
      返回:
        结果集合

    - #### queryColumnSheet

          public <T,V extends java.io.Serializable> Sheet<V> queryColumnSheet(java.lang.String selectedColumn,
                                                                              java.lang.Class<T> clazz,
                                                                              Flipper flipper,
                                                                              FilterNode node)

      指定者:
        `queryColumnSheet` 在接口中 `DataSource`

    - #### queryList

          public <T> java.util.List<T> queryList(java.lang.Class<T> clazz,
                                                 java.lang.String column,
                                                 java.io.Serializable key)

      从接口复制的说明: `DataSource`
      根据指定字段值查询对象集合
      指定者:
        `queryList` 在接口中 `DataSource`
      类型参数:
        `T` - Entity泛型
      参数:
        `clazz` - Entity类
        `column` - 过滤字段名
        `key` - 过滤字段值
      返回:
        Entity的List

    - #### queryList

          public final <T> java.util.List<T> queryList(java.lang.Class<T> clazz,
                                                       FilterBean bean)

      指定者:
        `queryList` 在接口中 `DataSource`

    - #### queryList

          public <T> java.util.List<T> queryList(java.lang.Class<T> clazz,
                                                 FilterNode node)

      指定者:
        `queryList` 在接口中 `DataSource`

    - #### queryList

          public final <T> java.util.List<T> queryList(java.lang.Class<T> clazz,
                                                       SelectColumn selects,
                                                       FilterBean bean)

      指定者:
        `queryList` 在接口中 `DataSource`

    - #### queryList

          public <T> java.util.List<T> queryList(java.lang.Class<T> clazz,
                                                 SelectColumn selects,
                                                 FilterNode node)

      指定者:
        `queryList` 在接口中 `DataSource`

    - #### queryList

          public <T> java.util.List<T> queryList(java.lang.Class<T> clazz,
                                                 Flipper flipper,
                                                 java.lang.String column,
                                                 java.io.Serializable key)

      指定者:
        `queryList` 在接口中 `DataSource`

    - #### queryList

          public final <T> java.util.List<T> queryList(java.lang.Class<T> clazz,
                                                       Flipper flipper,
                                                       FilterBean bean)

      指定者:
        `queryList` 在接口中 `DataSource`

    - #### queryList

          public <T> java.util.List<T> queryList(java.lang.Class<T> clazz,
                                                 Flipper flipper,
                                                 FilterNode node)

      指定者:
        `queryList` 在接口中 `DataSource`

    - #### queryList

          public final <T> java.util.List<T> queryList(java.lang.Class<T> clazz,
                                                       SelectColumn selects,
                                                       Flipper flipper,
                                                       FilterBean bean)

      指定者:
        `queryList` 在接口中 `DataSource`

    - #### queryList

          public <T> java.util.List<T> queryList(java.lang.Class<T> clazz,
                                                 SelectColumn selects,
                                                 Flipper flipper,
                                                 FilterNode node)

      指定者:
        `queryList` 在接口中 `DataSource`

    - #### querySheet

          public final <T> Sheet<T> querySheet(java.lang.Class<T> clazz,
                                               Flipper flipper,
                                               FilterBean bean)

      从接口复制的说明: `DataSource`
      根据指定参数查询对象某个对象的集合页

      指定者:
        `querySheet` 在接口中 `DataSource`
      类型参数:
        `T` - Entity泛型
      参数:
        `clazz` - Entity类
        `flipper` - 翻页对象
        `bean` - 过滤Bean
      返回:
        Entity的Sheet

    - #### querySheet

          public <T> Sheet<T> querySheet(java.lang.Class<T> clazz,
                                         Flipper flipper,
                                         FilterNode node)

      指定者:
        `querySheet` 在接口中 `DataSource`

    - #### querySheet

          public final <T> Sheet<T> querySheet(java.lang.Class<T> clazz,
                                               SelectColumn selects,
                                               Flipper flipper,
                                               FilterBean bean)

      指定者:
        `querySheet` 在接口中 `DataSource`

    - #### querySheet

          public <T> Sheet<T> querySheet(java.lang.Class<T> clazz,
                                         SelectColumn selects,
                                         Flipper flipper,
                                         FilterNode node)

      指定者:
        `querySheet` 在接口中 `DataSource`

    - #### close

          public void close()
                     throws java.lang.Exception

      指定者:
        `close` 在接口中 `java.lang.AutoCloseable`
      抛出:
        `java.lang.Exception`

    - #### directQuery

          public final void directQuery(java.lang.String sql,
                                        java.util.function.Consumer<java.sql.ResultSet> consumer)

      从接口复制的说明: `DataSource`
      直接本地执行SQL语句进行查询，远程模式不可用 通常用于复杂的关联查询
      指定者:
        `directQuery` 在接口中 `DataSource`
      参数:
        `sql` - SQL语句
        `consumer` - 回调函数

    - #### directExecute

          public final int[] directExecute(java.lang.String... sqls)

      从接口复制的说明: `DataSource`
      直接本地执行SQL语句进行增删改操作，远程模式不可用 通常用于复杂的更新操作
      指定者:
        `directExecute` 在接口中 `DataSource`
      参数:
        `sqls` - SQL语句
      返回:
        结果数组