Olá,
Sou novato em Java e em programação e estou tentando fazer um programa com interface gráfica com um CRUD simples, poucos dados.
O problema é que estou meio sem referência e estou tentando juntar um CRUD que salva na memória com um código que tenho e que funciona de uma conexão JAVA + MySQL.
Mas essa junção está complicada de fazer funcionar…
Se alguém puder dar uma ajuda.
Ele faz a conexão(essa conexão funciona) e retorna uma String pro código principal se conseguiu conectar ou não ao banco de dados. Só isso. Mas não está funcionando. Está dando erro.
package standard;
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 bd {
Connection connection = null;
String conexao;
public String Conexao()
{
try
{
Class.forName("com.mysql.cj.jdbc.Driver");
String serverName = "localhost:3306";
String mydatabase = "test";
String url = "jdbc:mysql://localhost:3306/test?serverTimezone=UTC";// + serverName + "/" + mydatabase; // a JDBC url
String username = "root@localhost";
String password = "";
try
{
connection = DriverManager.getConnection(url, username, password);
System.out.println("Conexao possivelmente com sucesso");
if(connection != null)
{
conexao = "Connected";
}
else
{
conexao = "Error connecting";
}
}
catch(SQLException e)
{
e.printStackTrace();
}
}
catch(ClassNotFoundException e)
{
// Could not find the database driver
System.out.println("Erro. Mensagem 1. Não foi possível conectar ao banco de dados.");
return conexao;
}
return conexao;
}
}
No código principal, na criação do form eu declaro uma variável dessa classe bd:
bd bancoDeDados;
String textoConexao = "";
E no código principal abaixo do initComponents():
public FormPrincipal() {
initComponents();
textoConexao = bancoDeDados.Conexao(); // <-- Essa linha da erro
}
Quando tento executar, retorna um erro:
Exception in thread "AWT-EventQueue-0" java.lang.NullPointerException
at standard.FormPrincipal.<init>(FormPrincipal.java:45)
at standard.FormPrincipal$8.run(FormPrincipal.java:406)
at java.awt.event.InvocationEvent.dispatch(InvocationEvent.java:311)
at java.awt.EventQueue.dispatchEventImpl(EventQueue.java:756)
at java.awt.EventQueue.access$500(EventQueue.java:97)
at java.awt.EventQueue$3.run(EventQueue.java:709)
at java.awt.EventQueue$3.run(EventQueue.java:703)
at java.security.AccessController.doPrivileged(Native Method)
at java.security.ProtectionDomain$JavaSecurityAccessImpl.doIntersectionPrivilege(ProtectionDomain.java:80)
at java.awt.EventQueue.dispatchEvent(EventQueue.java:726)
at java.awt.EventDispatchThread.pumpOneEventForFilters(EventDispatchThread.java:201)
at java.awt.EventDispatchThread.pumpEventsForFilter(EventDispatchThread.java:116)
at java.awt.EventDispatchThread.pumpEventsForHierarchy(EventDispatchThread.java:105)
at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:101)
at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:93)
at java.awt.EventDispatchThread.run(EventDispatchThread.java:82)
Não sei ainda como resolver. Mas estou tentando. Se alguém mais experiente bater o olho e souber o que pode ser eu agradeço.
Lembrando que sou novato em programação e meu código pode não ser o melhor dos códigos, mas a intenção é fazer um CRUD com interface gráfica funcionar. A interface e o CRUD salvando na memória funciona. E o código da conexão sozinho também funciona e conecta ao banco de dados. Falta juntar os dois agora, começando por essa conexão que não consegui ainda.
Obrigado por qualquer ajuda.