problema de seguridad findbugs y contraseña de la base de datos

Estoy usando el siguiente código para inicializar la conexión de la base de datos:


 public Connection getConnection() {
        try {
            if (null == connection) {
                String driverName = "com.mysql.jdbc.Driver"; // MySQL MM JDBC driver
                Class.forName(driverName);

                // Create a connection to the database
                String serverName = "localhost";
                String database = "database";
                String url = "jdbc:mysql://" + serverName + "/" + mydatabase; // a JDBC url
                String username = "username";
                String password = "password";
                connection = DriverManager.getConnection(url, username, password);
            }
            return connection;
        } catch (ClassNotFoundException cnfe) {
            cnfe.printStackTrace();
        } catch (SQLException sqle) {
            sqle.printStackTrace();
        }
        throw new NullPointerException("Cannot establish database connection...");
    }

y sé que es una mala práctica hacerlo, también corríFindBugs contra el código, y obtuve el problema de seguridad diciendo lo siguiente:This code creates a database connect using a hardcoded, constant password. Anyone with access to either the source code or the compiled code can easily learn the password.

¿Cuál es la mejor manera de inicializar la conexión de la base de datos sin tener esta violación de seguridad?