Dificuldade com JDBC

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.

Class.forName(JDBC_DRIVER)

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

Adicionou o Connector como dependência?

1 curtida

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

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

Eclipse

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

1 curtida

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

1 curtida