Dificuldade com JDBC

7 respostas Resolvido
Js_Moura
Pessoal, estou aprendendo a programar agora com JAVA, o livro do Deitel. Estou tentando reproduzir o exemplo do livro de JDBC.

import java.sql.Connection;

import java.sql.Statement;

import java.sql.DriverManager;

import java.sql.ResultSet;

import java.sql.ResultSetMetaData;

import java.sql.SQLException;
public class JDBC{
	
	static final String JDBC_DRIVER = "com.mysql.jdbc.Driver";
	static final String DATABASE_URL = "jdbc:mysql://localhost/t";
	
	public static void main(String[] args) {
		Connection connection = null;
		Statement statement = null;
		
		try {
			Class.forName(JDBC_DRIVER);
			connection = 
					DriverManager.getConnection(DATABASE_URL);
			
			statement = connection.createStatement();
		}	catch(SQLException e) {
			e.printStackTrace();
			System.exit(1);
		} catch (ClassNotFoundException e) {
			e.printStackTrace();
			System.exit(1);
		} finally{
			try {
				statement.close();
				connection.close();
			} catch(Exception e) {
				e.printStackTrace();
				System.exit(1);
			}
		}
	}
}

E está gerando o seguinte erro:

java.lang.ClassNotFoundException: com.mysql.jdbc.Driver
	at java.base/jdk.internal.loader.BuiltinClassLoader.loadClass(BuiltinClassLoader.java:581)
	at java.base/jdk.internal.loader.ClassLoaders$AppClassLoader.loadClass(ClassLoaders.java:178)
	at java.base/java.lang.ClassLoader.loadClass(ClassLoader.java:521)
	at java.base/java.lang.Class.forName0(Native Method)
	at java.base/java.lang.Class.forName(Class.java:315)
	at Agenda.main(Agenda.java:18)

Tenho outros cursos que ensinam como utilizar o JDBC com o maven porém queria aprender a utilizar ele sem um gerenciador de dependências.

7 Respostas

Js_Moura

Class.forName(JDBC_DRIVER)

RoinujNosde

https://dev.mysql.com/downloads/connector/j/

Adicionou o Connector como dependência?

Js_Moura

Tinha me esquecido, agr que adicionei as dependências o código ficou assim:

package testeJDBC;

import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.SQLException;
import java.sql.Statement;

public class JDBC {

	static final String JDBC_DRIVER = "com.mysql.cj.jdbc.Driver";
	static final String DATABASE_URL = "jdbc:mysql://localhost:3306/teste";
	static final String USER = "root";
	static final String PASSWORD = "root";
	
	public static void main(String[] args) {
		Connection connection = null;
		Statement statement = null;
		
		try {
			Class.forName(JDBC_DRIVER);
			connection = 
					DriverManager.getConnection(DATABASE_URL, USER, PASSWORD);
			
			statement = connection.createStatement();
			
		}	catch(SQLException e) {
			e.printStackTrace();
			System.exit(1);
		} catch (ClassNotFoundException e) {
			e.printStackTrace();
			System.exit(1);
		} finally{
			try {
				statement.close();
				connection.close();
			} catch(Exception e) {
				e.printStackTrace();
				System.exit(1);
			}
		}
	}
}

e o erro é este:

java.lang.ClassNotFoundException: com.mysql.cj.jdbc.Driver
	at java.base/jdk.internal.loader.BuiltinClassLoader.loadClass(BuiltinClassLoader.java:581)
	at java.base/jdk.internal.loader.ClassLoaders$AppClassLoader.loadClass(ClassLoaders.java:178)
	at java.base/java.lang.ClassLoader.loadClass(ClassLoader.java:521)
	at java.base/java.lang.Class.forName0(Native Method)
	at java.base/java.lang.Class.forName(Class.java:315)
	at testeJDBC.JDBC.main(JDBC.java:20)

image

RoinujNosde

Qual IDE vc tá usando?
Parece que não adicionou corretamente como dependência.

Js_Moura

Eclipse

RoinujNosde
Solucao aceita

Clique com o botão direito no projeto -> Propriedades -> Buildpath -> Bibliotecas -> Adicionar JAR externo e selecione o jar do connector.

Js_Moura

Deu certo, agradeço a todos pela ajuda !!

Criado 27 de março de 2021
Ultima resposta 27 de mar. de 2021
Respostas 7
Participantes 2