@Override
  protected DbUnitDatabaseConnection createDbUnitConnection(String schemaName) {
    Assert.notNull(schemaName, "数据集的模式名不能为空,且必须规范。");
    // 获取数据连接
    DbUnitDatabaseConnection connection = super.createDbUnitConnection(schemaName);

    // 没有根据数据库类型使用特订数据源的MetadataHandler,以下代码防止取不到表的元数据信息
    ////////////////////////////////////////////////////////////////////////////////////////////////////////////////
    boolean isMySQL = false;
    try {
      String databaseProductName =
          connection.getConnection().getMetaData().getDatabaseProductName();
      if ("MySQL".equals(databaseProductName)) {
        isMySQL = true;
        logger.info(
            "Database product name = "
                + databaseProductName
                + ", set DatabaseConfig.PROPERTY_METADATA_HANDLER to new MySqlMetadataHandler()");
      }
    } catch (SQLException e) {
      e.printStackTrace();
    }
    // if database is MySQL, reset PROPERTY_METADATA_HANDLER to use MySQL specific Handler
    if (isMySQL) {
      DatabaseConfig config = connection.getConfig();
      config.setProperty(DatabaseConfig.PROPERTY_METADATA_HANDLER, new MySqlMetadataHandler());
    }
    ////////////////////////////////////////////////////////////////////////////////////////////////////////////////

    return connection;
  }