O que é a string de conexão do driver JDBC do MySQL?

117

Eu sou novo em JDBC e estou tentando fazer uma conexão com um banco de dados MySQL. Estou usando o driver Connector / J, mas não consigo encontrar a string de conexão JDBC para meu Class.forName()método.

BalusC
fonte
4
Para começar, o Class.forName()não espera uma string de conexão JDBC, mas o nome da classe do driver JDBC.
BalusC

Respostas:

114

Supondo que seu motorista esteja no caminho,

String url = "jdbc:mysql://localhost/test";
Class.forName ("com.mysql.jdbc.Driver").newInstance ();
Connection conn = DriverManager.getConnection (url, "username", "password");
Langali
fonte
1
como você encontra o caminho jdbc se não estiver nas variáveis ​​de ambiente?
Roy Hinkley
1
No código de amostra, o url do JDBC foi codificado, não pesquisado em nenhuma variável de ambiente
Jaime Hablutzel
67

Aqui está a documentação:

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

Uma string de conexão básica se parece com:

jdbc:mysql://localhost:3306/dbname

A string class.forName é "com.mysql.jdbc.Driver", que você pode encontrar (editar: agora na mesma página).

Tim Sylvester
fonte
Os links acima não funcionam. Aqui está um novo link de trabalho: dev.mysql.com/doc/connector-j/en/…
hexicle
1
Se eu tiver três propriedades a serem usadas na cadeia de conexão, como seria a aparência seqüência de conexão como - por exemplo: useOldAliasMetadataBehavior=true, useUnicode=true,characterEncoding=UTF-8
N00b Pr0grammer
17
"jdbc:mysql://localhost"

Dos documentos do oracle ..

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

host: porta é o nome do host e o número da porta do computador que hospeda seu banco de dados. Se não for especificado, os valores padrão de host e porta são 127.0.0.1 e 3306, respectivamente.

base de dados é o nome do banco de dados ao qual se conectar. Se não for especificado, uma conexão é feita sem banco de dados padrão.

failover é o nome de um banco de dados em espera (MySQL Connector / J suporta failover).

propertyName = propertyValue representa uma lista opcional de propriedades separadas por e comercial. Esses atributos permitem que você instrua o MySQL Connector / J a realizar várias tarefas.

Fintan Kearney
fonte
Se eu tiver três propriedades a serem usadas na cadeia de conexão, como seria a aparência seqüência de conexão como - por exemplo: useOldAliasMetadataBehavior=true, useUnicode=true, characterEncoding=UTF-8
N00b Pr0grammer
@B Pavan Kumar É um URI, então as propriedades devem ser separadas por e comercial ("&"), conforme indicado na especificação que citei.
Tim Sylvester
1
@ N00bPr0grammerjdbc:mysql://[host][:port]/[database]?useOldAliasMetadataBehavior=true&useUnicode=true&characterEncoding=UTF-8
ssc-hrep3
5

É muito simples :

  1. Vá para o ambiente de trabalho MySQL e procure Banco de dados> Gerenciar conexões
  2. você verá uma lista de conexões. Clique na conexão à qual deseja se conectar.
  3. Você verá guias sobre conexão, gerenciamento remoto e perfil do sistema. Clique na guia de conexão.
  4. seu url é jdbc:mysql://<hostname>:<port>/<dbname>?prop1etc. onde <hostname>e <port>é fornecido na guia de conexão. Será principalmente localhost: 3306. <dbname>será encontrado na guia Perfil do Sistema em Nome do Serviço do Windows. O padrão será principalmente MySQL5, <x>onde x é o número da versão, por exemplo. 56 para MySQL5.6 e 55 para MySQL5.5 etc. Você também pode especificar o seu próprio nome de serviço do Windows para conectar.
  5. Construa o url de acordo e defina-o para conectar.
Krishnan Devarajan
fonte
5

Para o Mysql, a string de conexão do driver jdbc é com.mysql.jdbc.Driver . Use o seguinte código para se conectar: ​​-

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);
   }
}
Arun Kumar N
fonte
3

atualização para mySQL 8:

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

Nemət Abdullayev
fonte
2

Como a resposta parece já ter sido respondida, não há muito a acrescentar, mas gostaria de acrescentar algo às respostas existentes. Esta era a maneira de carregar a classe para o driver JDBC para mysql

com.mysql.jdbc.Driver

Mas isso está obsoleto agora. A nova classe de motorista é agora

com.mysql.cj.jdbc.Driver

Além disso, o driver é registrado automaticamente por meio do SPI e o carregamento manual da classe do driver geralmente é desnecessário.

Rathore
fonte
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 é a porta padrão para mysql.

Se você estiver usando Java 7, não há necessidade de adicionar o Class.forName("com.mysql.jdbc.Driver").newInstance (); instrução. O Gerenciamento automático de recursos (ARM) é adicionado ao JDBC 4.1, que vem por padrão no Java 7.

O formato geral de um URL JDBC para conexão a um servidor MySQL é o seguinte, com os itens entre colchetes ([]) sendo opcionais:

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

protocolo // [hosts] [/ banco de dados] [? propriedades]

Se você não tiver nenhuma propriedade, ignore-o, então será como

jdbc: mysql: //127.0.0.1: 3306 / test

jdbc: mysql é o protocolo 127.0.0.1: é o host e 3306 é o número da porta teste é o banco de dados

NSC
fonte
0

depende de qual serviço você está usando.

se você usar o MySQL Workbench, seria algo assim:

jdbc: mysql: // "host": "número da porta" /

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

E é claro que será diferente se você usar SSL / SSH.

Para mais informações siga o link oficial da Jetbriens (ideia intelliJ):

Conectando a um banco de dados #

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


Configurando conexões de banco de dados #

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

ARiyou Jahan
fonte