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)
2)la classe DbUtils dove mi creo la connessione al databasecodice: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(); } }
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.*; 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; } }
.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:
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.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)

Rispondi quotando

