Class BaseModelService<Entity extends BaseModel>

java.lang.Object
cool.scx.app.base.BaseModelService<Entity>

public class BaseModelService<Entity extends BaseModel> extends Object
提供一些针对 BaseModel 类型实体类 简单的 CRUD 操作的 service 类

业务 service 可以继承此类 (注意 : 如需要被 beanFactory 扫描到 请标注 ScxService 注解)

或手动创建 : new BaseModelService()

如果还是无法满足需求, 可以考虑使用 SQLRunner

Version:
0.0.1
Author:
scx567888
  • Field Summary

    Fields
    Modifier and Type
    Field
    Description
    protected final Class<Entity>
    BaseDao
  • Constructor Summary

    Constructors
    Constructor
    Description
    从泛型中获取 entityClass
    手动创建 entityClass
  • Method Summary

    Modifier and Type
    Method
    Description
    final Entity
    add(Entity entity)
    插入数据 (注意 !!!
    add(Entity entity, cool.scx.data.field_filter.FieldFilter updateFilter)
    插入数据 (注意 !!!
    final List<Long>
    add(Collection<Entity> entityList)
    批量插入数据
    add(Collection<Entity> entityList, cool.scx.data.field_filter.FieldFilter updateFilter)
    批量插入数据
    final cool.scx.jdbc.sql.SQL
    buildGetSQL(cool.scx.data.query.Query query, cool.scx.data.field_filter.FieldFilter selectFilter)
     
    final cool.scx.jdbc.sql.SQL
    buildGetSQLWithAlias(cool.scx.data.query.Query query, cool.scx.data.field_filter.FieldFilter selectFilter)
     
    final cool.scx.jdbc.sql.SQL
    buildListSQL(cool.scx.data.query.Query query, cool.scx.data.field_filter.FieldFilter selectFilter)
     
    final cool.scx.jdbc.sql.SQL
    buildListSQLWithAlias(cool.scx.data.query.Query query, cool.scx.data.field_filter.FieldFilter selectFilter)
     
    final long
    获取所有数据的条数
    final long
    count(cool.scx.data.query.Query query)
    根据聚合查询条件 Query 获取数据条数
    dao()
     
    final long
    delete(long... ids)
    根据 ID 列表删除指定的数据
    long
    delete(cool.scx.data.query.Query query)
    根据条件删除
    final Class<Entity>
     
    final List<Entity>
    获取所有数据
    final List<Entity>
    find(long... ids)
    根据 id 获取数据
    final List<Entity>
    find(cool.scx.data.field_filter.FieldFilter selectFilter)
    获取所有数据 (使用查询过滤器)
    final void
    find(cool.scx.data.field_filter.FieldFilter selectFilter, Consumer<Entity> consumer)
    获取所有数据 (使用查询过滤器)
    final List<Entity>
    find(cool.scx.data.query.Query query)
    根据聚合查询条件 Query 获取数据列表
    find(cool.scx.data.query.Query query, cool.scx.data.field_filter.FieldFilter selectFilter)
    根据聚合查询条件 Query 获取数据列表
    void
    find(cool.scx.data.query.Query query, cool.scx.data.field_filter.FieldFilter selectFilter, Consumer<Entity> consumer)
    根据聚合查询条件 Query 获取数据列表
    final void
    find(cool.scx.data.query.Query query, Consumer<Entity> consumer)
    根据聚合查询条件 Query 获取数据列表
    final void
    find(Consumer<Entity> consumer)
    获取所有数据
    final Entity
    get(long id)
    根据 ID (主键) 查询单条数据
    final Entity
    get(long id, cool.scx.data.field_filter.FieldFilter selectFilter)
    根据 ID (主键) 查询单条数据
    final Entity
    get(cool.scx.data.query.Query query)
    根据聚合查询条件 Query 获取单条数据
    get(cool.scx.data.query.Query query, cool.scx.data.field_filter.FieldFilter selectFilter)
    根据聚合查询条件 Query 获取单条数据
    final Entity
    update(Entity entity)
    根据 ID 更新 (注意 !!!
    final Entity
    update(Entity entity, cool.scx.data.field_filter.FieldFilter updateFilter)
    根据 ID 更新 (注意 !!!
    final long
    update(Entity entity, cool.scx.data.query.Query query)
    根据指定条件更新数据
    long
    update(Entity entity, cool.scx.data.query.Query query, cool.scx.data.field_filter.FieldFilter updateFilter)
    根据指定条件更新数据

    Methods inherited from class java.lang.Object

    clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
  • Field Details

  • Constructor Details

    • BaseModelService

      public BaseModelService()
      从泛型中获取 entityClass
    • BaseModelService

      public BaseModelService(Class<Entity> entityClass)
      手动创建 entityClass
      Parameters:
      entityClass - 继承自 BaseModel 的实体类 class
  • Method Details

    • add

      public final Entity add(Entity entity)
      插入数据 (注意 !!! 这里会在插入之后根据主键再次进行一次查询, 若只是进行插入且对性能有要求请使用 JDBCDao.add(Object, FieldFilter))
      Parameters:
      entity - 待插入的数据
      Returns:
      插入成功的数据 如果插入失败或数据没有主键则返回 null
    • add

      public Entity add(Entity entity, cool.scx.data.field_filter.FieldFilter updateFilter)
      插入数据 (注意 !!! 这里会在插入之后根据主键再次进行一次查询, 若只是进行插入且对性能有要求请使用 JDBCDao.add(Object, FieldFilter))
      Parameters:
      entity - 待插入的数据
      updateFilter - 更新字段过滤器
      Returns:
      插入成功的数据 如果插入失败或数据没有主键则返回 null
    • add

      public final List<Long> add(Collection<Entity> entityList)
      批量插入数据
      Parameters:
      entityList - 数据集合
      Returns:
      插入成功的数据的自增主键列表
    • add

      public List<Long> add(Collection<Entity> entityList, cool.scx.data.field_filter.FieldFilter updateFilter)
      批量插入数据
      Parameters:
      entityList - 数据集合
      updateFilter - 更新字段过滤器
      Returns:
      插入成功的数据的自增主键列表
    • find

      public final List<Entity> find()
      获取所有数据
      Returns:
      所有数据
    • find

      public final List<Entity> find(cool.scx.data.field_filter.FieldFilter selectFilter)
      获取所有数据 (使用查询过滤器)
      Parameters:
      selectFilter - 查询字段过滤器
      Returns:
      所有数据
    • find

      public final List<Entity> find(cool.scx.data.query.Query query)
      根据聚合查询条件 Query 获取数据列表
      Parameters:
      query - 聚合查询参数对象
      Returns:
      数据列表
    • find

      public List<Entity> find(cool.scx.data.query.Query query, cool.scx.data.field_filter.FieldFilter selectFilter)
      根据聚合查询条件 Query 获取数据列表
      Parameters:
      query - 聚合查询参数对象
      selectFilter - 查询字段过滤器
      Returns:
      数据列表
    • find

      public final void find(Consumer<Entity> consumer)
      获取所有数据
    • find

      public final void find(cool.scx.data.field_filter.FieldFilter selectFilter, Consumer<Entity> consumer)
      获取所有数据 (使用查询过滤器)
      Parameters:
      selectFilter - 查询字段过滤器
    • find

      public final void find(cool.scx.data.query.Query query, Consumer<Entity> consumer)
      根据聚合查询条件 Query 获取数据列表
      Parameters:
      query - 聚合查询参数对象
    • find

      public void find(cool.scx.data.query.Query query, cool.scx.data.field_filter.FieldFilter selectFilter, Consumer<Entity> consumer)
      根据聚合查询条件 Query 获取数据列表
      Parameters:
      query - 聚合查询参数对象
      selectFilter - 查询字段过滤器
    • find

      public final List<Entity> find(long... ids)
      根据 id 获取数据
      Parameters:
      ids - id 列表
      Returns:
      列表数据
    • get

      public final Entity get(long id)
      根据 ID (主键) 查询单条数据
      Parameters:
      id - id ( 主键 )
      Returns:
      查到多个则返回第一个 没有则返回 null
    • get

      public final Entity get(long id, cool.scx.data.field_filter.FieldFilter selectFilter)
      根据 ID (主键) 查询单条数据
      Parameters:
      id - id ( 主键 )
      selectFilter - 查询字段过滤器
      Returns:
      查到多个则返回第一个 没有则返回 null
    • get

      public final Entity get(cool.scx.data.query.Query query)
      根据聚合查询条件 Query 获取单条数据
      Parameters:
      query - 聚合查询参数对象
      Returns:
      查到多个则返回第一个 没有则返回 null
    • get

      public Entity get(cool.scx.data.query.Query query, cool.scx.data.field_filter.FieldFilter selectFilter)
      根据聚合查询条件 Query 获取单条数据
      Parameters:
      query - 聚合查询参数对象
      selectFilter - 查询字段过滤器
      Returns:
      查到多个则返回第一个 没有则返回 null
    • update

      public final Entity update(Entity entity)
      根据 ID 更新 (注意 !!! 这里会在更新之后根据主键再次进行一次查询, 若只是进行更新且对性能有要求请使用 JDBCDao.update(Object, Query, FieldFilter))
      Parameters:
      entity - 待更新的数据 ( 注意: 请保证数据中 id 字段不为空 )
      Returns:
      更新成功后的数据
    • update

      public final Entity update(Entity entity, cool.scx.data.field_filter.FieldFilter updateFilter)
      根据 ID 更新 (注意 !!! 这里会在更新之后根据主键再次进行一次查询, 若只是进行更新且对性能有要求请使用 JDBCDao.update(Object, Query, FieldFilter))
      Parameters:
      entity - 待更新的数据 ( 注意: 请保证数据中 id 字段不为空 )
      updateFilter - 更新字段过滤器
      Returns:
      更新成功后的数据
    • update

      public final long update(Entity entity, cool.scx.data.query.Query query)
      根据指定条件更新数据
      Parameters:
      entity - 待更新的数据
      query - 更新的条件
      Returns:
      更新成功的数据条数
    • update

      public long update(Entity entity, cool.scx.data.query.Query query, cool.scx.data.field_filter.FieldFilter updateFilter)
      根据指定条件更新数据
      Parameters:
      entity - 待更新的数据
      query - 更新的条件
      updateFilter - 更新字段过滤器
      Returns:
      更新成功的数据条数
    • delete

      public final long delete(long... ids)
      根据 ID 列表删除指定的数据
      Parameters:
      ids - 要删除的数据的 id 集合
      Returns:
      删除成功的数据条数
    • delete

      public long delete(cool.scx.data.query.Query query)
      根据条件删除
      Parameters:
      query - 删除条件
      Returns:
      被删除的数据条数
    • count

      public final long count()
      获取所有数据的条数
      Returns:
      所有数据的条数
    • count

      public final long count(cool.scx.data.query.Query query)
      根据聚合查询条件 Query 获取数据条数
      Parameters:
      query - 聚合查询参数对象
      Returns:
      数据条数
    • dao

      public final JDBCDao<Entity> dao()
    • entityClass

      public final Class<Entity> entityClass()
    • buildListSQL

      public final cool.scx.jdbc.sql.SQL buildListSQL(cool.scx.data.query.Query query, cool.scx.data.field_filter.FieldFilter selectFilter)
    • buildGetSQL

      public final cool.scx.jdbc.sql.SQL buildGetSQL(cool.scx.data.query.Query query, cool.scx.data.field_filter.FieldFilter selectFilter)
    • buildListSQLWithAlias

      public final cool.scx.jdbc.sql.SQL buildListSQLWithAlias(cool.scx.data.query.Query query, cool.scx.data.field_filter.FieldFilter selectFilter)
    • buildGetSQLWithAlias

      public final cool.scx.jdbc.sql.SQL buildGetSQLWithAlias(cool.scx.data.query.Query query, cool.scx.data.field_filter.FieldFilter selectFilter)