Salve, tramite Eclipse devo creare un programma con interfaccia grafica che mi permetta di compilare delle query su un database in MySql(in questo caso il database è composto da: automobile(modello, casa automobilistica, codice, cf_venditore, cf_acquirente, nr_posti e prezzo), venditore(nome,cognome,cf,sedelavorativa), acquirente(cf,nome,cognome,residenza),concessionar ia(nome,città).
Visto che sono alle prime armi, prima di creare interfaccia grafica con i vari bottoni che mi permettano di eseguire le query, ho preferito prima di farlo tramite console.
Il problema è che mi da sempre e praticamente gli stessi errori nonostante MySql sia in running e che non manchino ne le varie librerie per jdbc ecc...
Ecco le tre classi:
1(il main dove poi mi creerò l'interfaccia grafica)
codice:
package progetto;
import java.sql.PreparedStatement;
import java.sql.SQLException;
import java.util.Scanner;
import java.util.logging.Level;
import java.util.logging.Logger;
import javax.swing.JButton;
import javax.swing.JFrame;
import javax.swing.JPanel;
public class Grafica
{
public static void main(String[] args) throws Exception
{
DataAccess a= new DataAccess();
a.aggiungiAutomobile();
}
}
2)la classe DbUtils dove mi creo la connessione al database
codice:
package progetto;
import java.sql.*;
public class DBUtils
{
public static PreparedStatement getPreparedStatement(String sql) throws SQLException, ClassNotFoundException
{
PreparedStatement ps=null;
Class.forName("com.mysql.cj.jdbc.Driver");
String url= "jdbc:mysql://localhost:3306/progettodatabase";
String user= "root";
String pass= "qwerty";
Connection con= DriverManager.getConnection(url, user, pass);
ps=con.prepareStatement(sql);
return ps;
}
}
3)la classe DataAccess, dove mi andrò a costruire tutti i metodi per le varie query(al momento ho soltanto creato aggiungi Auto)
codice:
package progetto;
import java.sql.PreparedStatement;
import java.sql.SQLException;
import java.util.Scanner;
import java.util.logging.Level;
import java.util.logging.Logger;
public class DataAccess {
public void aggiungiAutomobile() throws Exception {
String codice;
String modello;
String casa_aut;
String cf_acquirente;
String cf_vend;
int nrposti;
double prezzo;
System.out.println("Inserisci valori");
Scanner s = new Scanner(System.in);
System.out.println("Inserisci codice:");
codice=s.nextLine();
System.out.println("Inserisci modello");
modello=s.nextLine();
System.out.println("Inserisci casa automobilistica");
casa_aut=s.nextLine();
System.out.println("Inserisci CF dell'acquirente");
cf_acquirente=s.next();
System.out.println("Inserisci CF del venditore");
cf_vend=s.next();
System.out.println("Inserisci il numero di posti dell'automobile");
nrposti=s.nextInt();
System.out.println("Inserisci il prezzo");
prezzo=s.nextDouble();
s.close();
try {
PreparedStatement ps= DBUtils.getPreparedStatement("insert into Automobile (codice, modello, casa_aut, cf_acquirente, cf_vend, nrposti, prezzo) values(?,?,?,?,?,?,?)"); //ci vuole un punto interrogativo per ogni parametro
ps.setString(1, codice);
ps.setString(2, modello);
ps.setString(3, casa_aut);
ps.setString(4, cf_acquirente);
ps.setString(5, cf_vend);
ps.setInt(6, nrposti);
ps.setDouble(7, prezzo);
ps.executeUpdate();
} catch (SQLException ex) {
Logger.getLogger(DataAccess.class.getName()).log(Level.SEVERE, null, ex);
}
}
}
.
Ogni volta che lo eseguo dopo aver inserito i vari dati per aggiungi automobile, mi compaiono i seguenti errori:
codice:
PM progetto.DataAccess aggiungiAutomobile
GRAVE: null
java.sql.SQLException: Access denied for user 'root'@'localhost' (using password: YES)
at com.mysql.cj.jdbc.exceptions.SQLError.createSQLException(SQLError.java:129)
at com.mysql.cj.jdbc.exceptions.SQLError.createSQLException(SQLError.java:97)
at com.mysql.cj.jdbc.exceptions.SQLExceptionsMapping.translateException(SQLExceptionsMapping.java:122)
at com.mysql.cj.jdbc.ConnectionImpl.createNewIO(ConnectionImpl.java:835)
at com.mysql.cj.jdbc.ConnectionImpl.<init>(ConnectionImpl.java:455)
at com.mysql.cj.jdbc.ConnectionImpl.getInstance(ConnectionImpl.java:240)
at com.mysql.cj.jdbc.NonRegisteringDriver.connect(NonRegisteringDriver.java:199)
at java.sql.DriverManager.getConnection(Unknown Source)
at java.sql.DriverManager.getConnection(Unknown Source)
at progetto.DBUtils.getPreparedStatement(DBUtils.java:13)
at progetto.DataAccess.aggiungiAutomobile(DataAccess.java:35)
at progetto.Grafica.main(Grafica.java:20)
Tendo a precisare che creo questa discussione soltanto per un aiuto e un chiarimento su come si svolga la connessione tra Eclipse e MySql, non pretendo certo il progetto fatto e pronto, anzi, ho voglia di comprendere il perché mi da sempre errori e visto che non riesco a trovare varie soluzioni ne online, ne parlandone con colleghi d'università mi rivolgo in questo gruppo. Grazie per le possibili ed eventuali risposte.