public static JdbcUrlUtil.UrlInfo getUrlInfo(String url) {
        Matcher matcher = URL_PATTERN.matcher(url);
        if (matcher.find()) {
            String urlWithoutDatabase = matcher.group("url");
            String database = matcher.group("database");
            return new JdbcUrlUtil.UrlInfo(
                    url,
                    urlWithoutDatabase,
                    matcher.group("host"),
                    Integer.valueOf(matcher.group("port")),
                    database,
                    matcher.group("suffix"));
        }
        throw new IllegalArgumentException("The jdbc url format is incorrect: " + url);
    }
@Test
    public void testMySQLUrlWithDatabase() {
        JdbcUrlUtil.UrlInfo urlInfo =
                JdbcUrlUtil.getUrlInfo("jdbc:mysql://192.168.1.1:5310/seatunnel?useSSL=true");
        Assertions.assertTrue(urlInfo.getUrlWithDatabase().isPresent());
        Assertions.assertTrue(urlInfo.getDefaultDatabase().isPresent());
        Assertions.assertEquals("seatunnel", urlInfo.getDefaultDatabase().get());
        Assertions.assertEquals(
                "jdbc:mysql://192.168.1.1:5310/seatunnel?useSSL=true",
                urlInfo.getUrlWithDatabase().get());
        Assertions.assertEquals("jdbc:mysql://192.168.1.1:5310", urlInfo.getUrlWithoutDatabase());
        Assertions.assertEquals("192.168.1.1", urlInfo.getHost());
        Assertions.assertEquals(5310, urlInfo.getPort());
        Assertions.assertEquals(
                urlInfo,
                JdbcUrlUtil.getUrlInfo("jdbc:mysql://192.168.1.1:5310/seatunnel?useSSL=true"));
    }