All Downloads are FREE. Search and download functionalities are using the official Maven repository.

com.microsoft.azure.toolkit.lib.database.utils.DatabaseTemplateUtils Maven / Gradle / Ivy

The newest version!
/*
 * Copyright (c) Microsoft Corporation. All rights reserved.
 * Licensed under the MIT License. See License.txt in the project root for license information.
 */

package com.microsoft.azure.toolkit.lib.database.utils;

import com.microsoft.azure.toolkit.lib.database.JdbcUrl;
import lombok.Builder;
import org.apache.commons.lang3.StringUtils;

import javax.annotation.Nonnull;

@Builder
public class DatabaseTemplateUtils {

    private static final String DEFAULT_MYSQL_DRIVER_CLASS_NAME = "com.mysql.cj.jdbc.Driver";
    private static final String DEFAULT_SQLSERVER_DRIVER_CLASS_NAME = "com.microsoft.sqlserver.jdbc.SQLServerDriver";
    private static final String DEFAULT_PASSWORD = "${your_password}";
    private static final String DEFAULT_USERNAME = "${your_username}";

    private static final String PROPERTY_PATTERN_SPRING =
            "spring.datasource.driver-class-name=%s" + System.lineSeparator()
            + "spring.datasource.url=%s" + System.lineSeparator()
            + "spring.datasource.username=%s" + System.lineSeparator()
            + "spring.datasource.password=%s";

    private static final String PROPERTY_PATTERN_JDBC =
            "String url =\"%s\";" + System.lineSeparator()
            + "Connection myDbConnection = DriverManager.getConnection(url, \"%s\", \"%s\");";

    public static String toSpringTemplate(@Nonnull JdbcUrl jdbcUrl, String driverClassName) {
        String driverClass = StringUtils.firstNonBlank(driverClassName, DEFAULT_MYSQL_DRIVER_CLASS_NAME);
        String username = StringUtils.firstNonBlank(jdbcUrl.getUsername(), DEFAULT_USERNAME);
        String password = StringUtils.firstNonBlank(jdbcUrl.getPassword(), DEFAULT_PASSWORD);
        String url = jdbcUrl.toString();
        return String.format(PROPERTY_PATTERN_SPRING, driverClass, url, username, password);
    }

    public static String toJdbcTemplate(@Nonnull JdbcUrl jdbcUrl) {
        String username = StringUtils.firstNonBlank(jdbcUrl.getUsername(), DEFAULT_USERNAME);
        String password = StringUtils.firstNonBlank(jdbcUrl.getPassword(), DEFAULT_PASSWORD);
        String url = jdbcUrl.toString();
        return String.format(PROPERTY_PATTERN_JDBC, url, username, password);
    }

}




© 2015 - 2025 Weber Informatics LLC | Privacy Policy