Hier ist meine Verbindung URL:Java kann nicht auf MySQL verbinden, wenn Kennwort% Symbol enthält
jdbc:mysql://mydbhost:3306/mydatabase?user=username&password=%u16*[email protected]
Wenn ich
DriverManager.getConnection()
mit aktueller URL aufrufen ich bin Fang Ausnahme:
ava.lang.IllegalArgumentException: URLDecoder: Illegal hex characters in escape (%) pattern - For input string: "u1"
Wenn die Verbindungs-URL nicht% enthält, funktioniert alles.
ich habe einige Informationen zu diesem Problem gefunden, und es empfiehlt nächste Umwandlung zu tun:
replaceAll("%(?![0-9a-fA-F]{2})", "%25")
Mit dieser Umwandlung ich habe Fehler: richtig
Access denied for user(incorrect password)
jemand Hilfe URL konvertieren kann?
@Berger: Diese Frage ist nicht eine reine Abfrage Zeichenfolge Parameter Typ. Weil die Parameter von der 'getConnection'-Methode zur Implementierung von 'DriverManager' übergeben und geparst werden. Problempunkt muss da sein. Daher kann nicht als Duplikat behandelt werden. –
@RavinderReddy: Oh ja, du hast Recht, nur die Flagge zu entfernen. – Berger
'@' und '!' sind reservierte Zeichen und '%' wird verwendet, um reservierte Zeichen zu verschlüsseln. Haben Sie versucht, Benutzer und Passwort getrennt von URL zu übergeben: 'getConnection (String url, String user, String passwort)'? –