Qual è la stringa di connessione del driver JDBC MySQL?


117

Sono nuovo in JDBC e sto cercando di stabilire una connessione a un database MySQL. Sto usando il driver Connector / J, ma non riesco a trovare la stringa di connessione JDBC per il mio Class.forName()metodo.


4
Per iniziare, Class.forName()non si aspetta una stringa di connessione JDBC, ma il nome della classe del driver JDBC.
BalusC

Risposte:


114

Supponendo che il tuo autista sia nel percorso,

String url = "jdbc:mysql://localhost/test";
Class.forName ("com.mysql.jdbc.Driver").newInstance ();
Connection conn = DriverManager.getConnection (url, "username", "password");

1
come trovi il percorso jdbc se non è nelle variabili d'ambiente?
Roy Hinkley

1
Nel codice di esempio l'URL JDBC è stato codificato, non cercato in nessuna variabile di ambiente
Jaime Hablutzel

67

Ecco la documentazione:

https://dev.mysql.com/doc/connector-j/en/connector-j-reference-configuration-properties.html

Una stringa di connessione di base ha il seguente aspetto:

jdbc:mysql://localhost:3306/dbname

La stringa class.forName è "com.mysql.jdbc.Driver", che puoi trovare (modifica: ora sulla stessa pagina).


I collegamenti sopra non funzionano. Ecco un nuovo collegamento funzionante: dev.mysql.com/doc/connector-j/en/…
hexicle

1
Se ho tre oggetti da utilizzare nella stringa di connessione, come sarebbe l'aspetto stringa di connessione come - ad esempio: useOldAliasMetadataBehavior=true, useUnicode=true,characterEncoding=UTF-8
N00b Pr0grammer

17
"jdbc:mysql://localhost"

Dai documenti di Oracle ..

jdbc:mysql://[host][,failoverhost...]
[:port]/[database]
[?propertyName1][=propertyValue1]
[&propertyName2][=propertyValue2]

host: port è il nome host e il numero di porta del computer che ospita il database. Se non specificato, i valori predefiniti di host e porta sono rispettivamente 127.0.0.1 e 3306.

database è il nome del database a cui connettersi. Se non specificato, viene stabilita una connessione con nessun database predefinito.

failover è il nome di un database in standby (MySQL Connector / J supporta il failover).

propertyName = propertyValue rappresenta un elenco di proprietà facoltativo separato dalla e commerciale. Questi attributi consentono di istruire MySQL Connector / J a eseguire varie attività.


Se ho tre oggetti da utilizzare nella stringa di connessione, come sarebbe l'aspetto stringa di connessione come - ad esempio: useOldAliasMetadataBehavior=true, useUnicode=true, characterEncoding=UTF-8
N00b Pr0grammer

@B Pavan Kumar È un URI, quindi le proprietà devono essere separate da e commerciale ("&"), come indicato nelle specifiche che ho citato.
Tim Sylvester

1
@ N00bPr0grammerjdbc:mysql://[host][:port]/[database]?useOldAliasMetadataBehavior=true&useUnicode=true&characterEncoding=UTF-8
ssc-hrep3

5

È molto semplice:

  1. Vai a MySQL workbench e cerca Database> Gestisci connessioni
  2. vedrai un elenco di connessioni. Fare clic sulla connessione a cui si desidera connettersi.
  3. Vedrai una scheda intorno alla connessione, alla gestione remota, al profilo di sistema. Fare clic sulla scheda di connessione.
  4. il tuo URL è jdbc:mysql://<hostname>:<port>/<dbname>?prop1ecc. dove <hostname>e <port>sono indicati nella scheda di connessione. Sarà principalmente localhost: 3306. <dbname>si troverà nella scheda Profilo di sistema in Nome servizio Windows. L'impostazione predefinita sarà principalmente MySQL5 <x>dove x è il numero di versione, ad es. 56 per MySQL5.6 e 55 per MySQL5.5 ecc. Puoi anche specificare il tuo nome del servizio Windows per connetterti.
  5. Costruisci l'URL di conseguenza e imposta l'URL per la connessione.

5

Per Mysql, la stringa di connessione del driver jdbc è com.mysql.jdbc.Driver . Usa il codice seguente per connetterti: -

class DBConnection {
   private static Connection con = null;
   private static String USERNAME = "your_mysql_username";
   private static String PASSWORD = "your_mysql_password";
   private static String DRIVER = "com.mysql.jdbc.Driver";
   private static String URL = "jdbc:mysql://localhost:3306/database_name";

   public static Connection getDatabaseConnection(){
       Class.forName(DRIVER);
       return con = DriverManager.getConnection(URL,USERNAME,PASSWORD);
   }
}

3

aggiornamento per mySQL 8:

String jdbcUrl="jdbc:mysql://localhost:3306/youdatabase?useSSL=false&serverTimezone=UTC";


2

Poiché la risposta sembra già stata risolta, non c'è molto da aggiungere ma vorrei aggiungere una cosa alle risposte esistenti. Questo era il modo di caricare la classe per il driver JDBC per mysql

com.mysql.jdbc.Driver

Ma ora questo è deprecato. La nuova classe di driver è ora

com.mysql.cj.jdbc.Driver

Inoltre, il driver viene registrato automaticamente tramite SPI e il caricamento manuale della classe di driver non è generalmente necessario.


0
String url = "jdbc:mysql://localhost:3306/dbname";
String user = "user";
String pass = "pass";
Class.forName ("com.mysql.jdbc.Driver").newInstance ();
Connection conn = DriverManager.getConnection (url, user, pass);

3306 è la porta predefinita per mysql.

Se si utilizza Java 7, non è nemmeno necessario aggiungere l' Class.forName("com.mysql.jdbc.Driver").newInstance ();istruzione. La gestione automatica delle risorse (ARM) viene aggiunta in JDBC 4.1, fornita per impostazione predefinita in Java 7.

Il formato generale per un URL JDBC per la connessione a un server MySQL è il seguente, con gli elementi tra parentesi quadre ([]) che sono facoltativi:

jdbc:mysql://[host1][:port1][,[host2][:port2]]...[/[database]] »
[?propertyName1=propertyValue1[&propertyName2=propertyValue2]...]

0

protocollo // [host] [/ database] [? proprietà]

Se non hai nessuna proprietà, ignorala, allora sarà come

jdbc: mysql: //127.0.0.1: 3306 / test

jdbc: mysql è il protocollo 127.0.0.1: è l'host e 3306 è il numero di porta test è il database


0

dipende dal servizio che stai utilizzando.

se usi MySQL Workbench sarà qualcosa del genere:

jdbc: mysql: // "host": "numero porta" /

String url = "jdbc:mysql://localhost:3306/";

E ovviamente sarà diverso se utilizzi SSL / SSH.

Per maggiori informazioni segui il link ufficiale di Jetbriens (idea di intelliJ):

Connessione a un database #

https://www.jetbrains.com/help/idea/connecting-to-a-database.html


Configurazione delle connessioni al database #

https://www.jetbrains.com/help/idea/configuring-database-connections.html

Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.