Class SqlHelper

java.lang.Object
cn.lm.mybatis.mapper.mapperhelper.SqlHelper

public class SqlHelper extends Object
拼常用SQL的工具类
Since:
2015-11-03 22:40
Author:
liuzh
  • Constructor Details

    • SqlHelper

      public SqlHelper()
  • Method Details

    • getDynamicTableName

      public static String getDynamicTableName(Class<?> entityClass, String tableName)
      获取表名 - 支持动态表名
      Parameters:
      entityClass -
      tableName -
      Returns:
    • getDynamicTableName

      public static String getDynamicTableName(Class<?> entityClass, String tableName, String parameterName)
      获取表名 - 支持动态表名,该方法用于多个入参时,通过parameterName指定入参中实体类的@Param的注解值
      Parameters:
      entityClass -
      tableName -
      parameterName -
      Returns:
    • getBindCache

      public static String getBindCache(EntityColumn column)
      Parameters:
      column -
      Returns:
    • getBindValue

      public static String getBindValue(EntityColumn column, String value)
      Parameters:
      column -
      Returns:
    • getIfCacheNotNull

      public static String getIfCacheNotNull(EntityColumn column, String contents)
      Parameters:
      column -
      Returns:
    • getIfCacheIsNull

      public static String getIfCacheIsNull(EntityColumn column, String contents)
      如果_cache == null
      Parameters:
      column -
      Returns:
    • getIfNotNull

      public static String getIfNotNull(EntityColumn column, String contents, boolean empty)
      判断自动!=null的条件结构
      Parameters:
      column -
      contents -
      empty -
      Returns:
    • getIfIsNull

      public static String getIfIsNull(EntityColumn column, String contents, boolean empty)
      判断自动==null的条件结构
      Parameters:
      column -
      contents -
      empty -
      Returns:
    • getIfNotNull

      public static String getIfNotNull(String entityName, EntityColumn column, String contents, boolean empty)
      判断自动!=null的条件结构
      Parameters:
      entityName -
      column -
      contents -
      empty -
      Returns:
    • getIfIsNull

      public static String getIfIsNull(String entityName, EntityColumn column, String contents, boolean empty)
      判断自动==null的条件结构
      Parameters:
      entityName -
      column -
      contents -
      empty -
      Returns:
    • getAllColumns

      public static String getAllColumns(Class<?> entityClass)
      获取所有查询列,如id,name,code...
      Parameters:
      entityClass -
      Returns:
    • selectAllColumns

      public static String selectAllColumns(Class<?> entityClass)
      select xxx,xxx...
      Parameters:
      entityClass -
      Returns:
    • selectCount

      public static String selectCount(Class<?> entityClass)
      select count(x)
      Parameters:
      entityClass -
      Returns:
    • selectCountExists

      public static String selectCountExists(Class<?> entityClass)
      select case when count(x) > 0 then 1 else 0 end
      Parameters:
      entityClass -
      Returns:
    • fromTable

      public static String fromTable(Class<?> entityClass, String defaultTableName)
      from tableName - 动态表名
      Parameters:
      entityClass -
      defaultTableName -
      Returns:
    • updateTable

      public static String updateTable(Class<?> entityClass, String defaultTableName)
      update tableName - 动态表名
      Parameters:
      entityClass -
      defaultTableName -
      Returns:
    • updateTable

      public static String updateTable(Class<?> entityClass, String defaultTableName, String entityName)
      update tableName - 动态表名
      Parameters:
      entityClass -
      defaultTableName - 默认表名
      entityName - 别名
      Returns:
    • deleteFromTable

      public static String deleteFromTable(Class<?> entityClass, String defaultTableName)
      delete tableName - 动态表名
      Parameters:
      entityClass -
      defaultTableName -
      Returns:
    • insertIntoTable

      public static String insertIntoTable(Class<?> entityClass, String defaultTableName)
      insert into tableName - 动态表名
      Parameters:
      entityClass -
      defaultTableName -
      Returns:
    • insertIntoTable

      public static String insertIntoTable(Class<?> entityClass, String defaultTableName, String parameterName)
      insert into tableName - 动态表名
      Parameters:
      entityClass -
      defaultTableName -
      parameterName - 动态表名的参数名
      Returns:
    • insertColumns

      public static String insertColumns(Class<?> entityClass, boolean skipId, boolean notNull, boolean notEmpty)
      insert table()列
      Parameters:
      entityClass -
      skipId - 是否从列中忽略id类型
      notNull - 是否判断!=null
      notEmpty - 是否判断String类型!=''
      Returns:
    • insertValuesColumns

      public static String insertValuesColumns(Class<?> entityClass, boolean skipId, boolean notNull, boolean notEmpty)
      insert-values()列
      Parameters:
      entityClass -
      skipId - 是否从列中忽略id类型
      notNull - 是否判断!=null
      notEmpty - 是否判断String类型!=''
      Returns:
    • updateSetColumns

      public static String updateSetColumns(Class<?> entityClass, String entityName, boolean notNull, boolean notEmpty)
      update set列
      Parameters:
      entityClass - 实体Class
      entityName - 实体映射名
      notNull - 是否判断!=null
      notEmpty - 是否判断String类型!=''
      Returns:
      XML中的SET语句块
    • updateSetColumnsIgnoreVersion

      public static String updateSetColumnsIgnoreVersion(Class<?> entityClass, String entityName, boolean notNull, boolean notEmpty)
      update set列,不考虑乐观锁注解 @Version
      Parameters:
      entityClass -
      entityName - 实体映射名
      notNull - 是否判断!=null
      notEmpty - 是否判断String类型!=''
      Returns:
    • notAllNullParameterCheck

      public static String notAllNullParameterCheck(String parameterName, Set<EntityColumn> columnSet)
      不是所有参数都是 null 的检查
      Parameters:
      parameterName - 参数名
      columnSet - 需要检查的列
      Returns:
    • exampleHasAtLeastOneCriteriaCheck

      public static String exampleHasAtLeastOneCriteriaCheck(String parameterName)
      Example 中包含至少 1 个查询条件
      Parameters:
      parameterName - 参数名
      Returns:
    • wherePKColumns

      public static String wherePKColumns(Class<?> entityClass)
      where主键条件
      Parameters:
      entityClass -
      Returns:
    • wherePKColumns

      public static String wherePKColumns(Class<?> entityClass, boolean useVersion)
      where主键条件
      Parameters:
      entityClass -
      useVersion -
      Returns:
    • wherePKColumns

      public static String wherePKColumns(Class<?> entityClass, String entityName, boolean useVersion)
      where主键条件
      Parameters:
      entityClass -
      entityName -
      useVersion -
      Returns:
    • whereAllIfColumns

      public static String whereAllIfColumns(Class<?> entityClass, boolean empty)
      where所有列的条件,会判断是否!=null
      Parameters:
      entityClass -
      empty -
      Returns:
    • whereAllIfColumns

      public static String whereAllIfColumns(Class<?> entityClass, boolean empty, boolean useVersion)
      where所有列的条件,会判断是否!=null
      Parameters:
      entityClass -
      empty -
      useVersion -
      Returns:
    • whereVersion

      public static String whereVersion(Class<?> entityClass)
      乐观锁字段条件
      Parameters:
      entityClass -
      Returns:
    • whereVersion

      public static String whereVersion(Class<?> entityClass, String entityName)
      乐观锁字段条件
      Parameters:
      entityClass -
      entityName - 实体名称
      Returns:
    • whereLogicDelete

      public static String whereLogicDelete(Class<?> entityClass, boolean isDeleted)
      逻辑删除的where条件,没有逻辑删除注解则返回空字符串
      AND column = value
      Parameters:
      entityClass -
      isDeleted - true:已经逻辑删除,false:未逻辑删除
      Returns:
    • logicDeleteColumnEqualsValue

      public static String logicDeleteColumnEqualsValue(Class<?> entityClass, boolean isDeleted)
      返回格式: column = value
      默认isDeletedValue = 1 notDeletedValue = 0
      则返回is_deleted = 1 或 is_deleted = 0
      若没有逻辑删除注解,则返回空字符串
      Parameters:
      entityClass -
      isDeleted - true 已经逻辑删除 false 未逻辑删除
    • logicDeleteColumnEqualsValue

      public static String logicDeleteColumnEqualsValue(EntityColumn column, boolean isDeleted)
      返回格式: column = value
      默认isDeletedValue = 1 notDeletedValue = 0
      则返回is_deleted = 1 或 is_deleted = 0
      若没有逻辑删除注解,则返回空字符串
      Parameters:
      column -
      isDeleted - true 已经逻辑删除 false 未逻辑删除
    • getLogicDeletedValue

      public static Integer getLogicDeletedValue(EntityColumn column, boolean isDeleted)
      获取逻辑删除注解的参数值
      Parameters:
      column -
      isDeleted - true:逻辑删除的值,false:未逻辑删除的值
      Returns:
    • hasLogicDeleteColumn

      public static boolean hasLogicDeleteColumn(Class<?> entityClass)
      是否有逻辑删除的注解
      Parameters:
      entityClass -
      Returns:
    • getLogicDeleteColumn

      public static EntityColumn getLogicDeleteColumn(Class<?> entityClass)
      获取逻辑删除注解的列,若没有返回null
      Parameters:
      entityClass -
      Returns:
    • orderByDefault

      public static String orderByDefault(Class<?> entityClass)
      获取默认的orderBy,通过注解设置的
      Parameters:
      entityClass -
      Returns:
    • exampleSelectColumns

      public static String exampleSelectColumns(Class<?> entityClass)
      example支持查询指定列时
      Returns:
    • exampleCountColumn

      public static String exampleCountColumn(Class<?> entityClass)
      example支持查询指定列时
      Returns:
    • exampleOrderBy

      public static String exampleOrderBy(Class<?> entityClass)
      example查询中的orderBy条件,会判断默认orderBy
      Returns:
    • exampleOrderBy

      public static String exampleOrderBy(String entityName, Class<?> entityClass)
      example查询中的orderBy条件,会判断默认orderBy
      Returns:
    • exampleForUpdate

      public static String exampleForUpdate()
      example 支持 for update
      Returns:
    • exampleCheck

      public static String exampleCheck(Class<?> entityClass)
      example 支持 for update
      Returns:
    • exampleWhereClause

      public static String exampleWhereClause()
      Example查询中的where结构,用于只有一个Example参数时
      Returns:
    • updateByExampleWhereClause

      public static String updateByExampleWhereClause()
      Example-Update中的where结构,用于多个参数时,Example带@Param("example")注解时
      Returns: