Class DbUtils


public abstract class DbUtils extends PrimaryDbUtils
数据库工具类

获取数据库的一些信息:类型、版本、时间、序列值...等等

Author:
wangliang181230
See Also:
  • Constructor Details

    • DbUtils

      public DbUtils()
  • Method Details

    • getDbType

      @NonNull public static String getDbType(@NonNull DataSource dataSource)
      从数据源中获取数据库类型
      值域:mysql、oracle、ms_sql_server、...(TODO: 其他数据库待补充)
      Parameters:
      dataSource - 数据源
      Returns:
      数据库类型(全部转为小写字母)
    • getDbVersion

      @NonNull public static String getDbVersion(@NonNull DataSource dataSource)
      获取数据库版本号
      Parameters:
      dataSource - 数据源
      Returns:
      数据库版本号
    • currentTimeMillis

      @NonNull public static long currentTimeMillis(@NonNull DataSource dataSource)
      获取数据库当前时间戳

      注意:与DbClockUtils的实现不同,DbClockUtils是基于记号时钟来快速计算出数据库的当前时间的。

      Parameters:
      dataSource - 数据源
      Returns:
      数据库当前时间戳
    • now

      @NonNull public static Date now(@NonNull DataSource dataSource)
      获取数据库当前时间

      注意:与DbClockUtils的实现不同,DbClockUtils是基于记号时钟来快速计算出数据库的当前时间的。

      Parameters:
      dataSource - 数据源
      Returns:
      数据库当前时间
    • seqCurrVal

      public static long seqCurrVal(DataSource dataSource, String seqName)
      获取当前序列值

      MySQL支持度较高 FIXME: Oracle存在连接池中的连接第一次调用时,会抛异常,此时会自动调用seqNextVal方法代替,但会导致序列+1。 其他数据库暂不支持。

      Parameters:
      dataSource - 数据源
      seqName - 序列名
      Returns:
      当前序列值
      Throws:
      icu.easyj.core.exception.NotSupportedException - 部分实现无法设置序列值,将抛出该异常
    • seqNextVal

      public static long seqNextVal(DataSource dataSource, String seqName)
      获取下一序列值
      Parameters:
      dataSource - 数据源
      seqName - 序列名
      Returns:
      下一序列值
    • seqSetVal

      public static long seqSetVal(DataSource dataSource, String seqName, long newVal)
      设置序列值,并返回原序列值

      FIXME: 除了MySQL数据库(自建表+函数实现)以外,其他数据库暂不支持!

      Parameters:
      dataSource - 数据源
      seqName - 序列名
      newVal - 新的序列值
      Returns:
      previousVal 前序列值
      Throws:
      icu.easyj.core.exception.NotSupportedException - 部分实现无法设置序列值,将抛出该异常