PDA

View Full Version : Problemoni java-mysql


Abdujaparov
03-08-2005, 21:52
Salve a tutti da 3 giorni cerco di capire come far comunicare JAVA con un database mysql ho scaricato le api Connector/J e mi sono messo a leggere un bel pò di guide e manuali però non riesco a far funzionare nulla! aiutatemi vi prego.
Ho implementato i seguenti metodi connetti() e aggiornaInserisci(String), il primo dovrebbe creare una connessione con il database il secondo dovrebbe eseguire la query di inserimento o di aggiornamento passata come stringa, ecco i metodi:


public void connetti(){
try {
Class.forName("com.mysql.jdbc.Driver");
}catch (ClassNotFoundException ex) {System.out.println("errore con Class.forName");}
String con = "jdbc:mysql://" + host +":3306"+"/"+db;

try{
conn = DriverManager.getConnection(con, user,password);
}catch(SQLException ex){System.out.println("errore con la connessione");}
}

public void aggiornaInserisci(String query) {
if(conn!=null){
try{
st = conn.createStatement();
st.executeUpdate(query);
}catch(SQLException e){System.out.println("problema esecuzione query");}
try{
conn.close();
}catch(SQLException ex){System.out.println("problema chiusura connessione");}
}
}

L'errore mi viene dato subito appena richiamo il metodo connetti ed è il seguente (ho tolto altre indicazioni perchè indicavano a cascata le classi che invocavano il metodo):

Exception in thread "AWT-EventQueue-0" java.lang.NoClassDefFoundError: org/aspectj/lang/Signature
at java.lang.Class.forName0(Native Method)
at java.lang.Class.forName(Class.java:164)
at comuni.DBMS.connetti(DBMS.java:48)

Cosa significa? A me sembra corretto non so cosa possa essere sbagliato, su internet avevo anche trovato una classe che fa la stessa cosa però da pure lo stesso errore ed il metodo connetti di quella classe è il seguente:

public boolean connetti() {
connesso = false;
try {

// Carico il driver JDBC per la connessione con il database MySQL
Class.forName("com.mysql.jdbc.Driver");

// Controllo che il nome del Database non sia nulla
if (!nomeDB.equals("")) {

// Controllo se il nome utente va usato o meno per la connessione
if (nomeUtente.equals("")) {

// La connessione non richiede nome utente e password
db = DriverManager.getConnection("jdbc:mysql://localhost/" + nomeDB);
} else {

// La connessione richiede nome utente, controllo se necessita anche della password
if (pwdUtente.equals("")) {

// La connessione non necessita di password
db = DriverManager.getConnection("jdbc:mysql://localhost/" + nomeDB + "?user=" + nomeUtente);
} else {

// La connessione necessita della password
db = DriverManager.getConnection("jdbc:mysql://localhost/" + nomeDB + "?user=" + nomeUtente + "&password=" + pwdUtente);
}
}

// La connessione è avvenuta con successo
connesso = true;
} else {
System.out.println("Manca il nome del database!!");
System.out.println("Scrivere il nome del database da utilizzare all'interno del file \"config.xml\"");
System.exit(0);
}
} catch (Exception e) { errore = e.getMessage(); }
return connesso;
}



Come posso risolvere? Vi prego ho urgente bisogno d'aiuto, grazie a tutti, ciao ciao.

franksisca
03-08-2005, 21:58
scusa, siccome interessa purea me, mi indicheresti dove hai scaricato tutto il materiale? domani mattina cercherò di darti una mano, ora ho sonno.NOTTE

Abdujaparov
03-08-2005, 22:43
Ho trovato materiale un pò qua un pò là, per esempio qua c'è una classe che dovrebbe essere funzionante ma a me non funziona:
http://forum.html.it/forum/showthread.php?threadid=801696

poi ho utilizzato il materiale che c'era con le api connector/j
poi qualcosa su mokabyte
Fammi sapere, che ho bisogno di grande aiuto, ciao ciao buona notte

kingv
03-08-2005, 23:33
è un problema di classpath, metti solo mysql-connector-java-x.xx.jar e non quello che finisce in -g.jar

Abdujaparov
04-08-2005, 09:35
Grazie a te sono riuscito a risolvere ti ringrazio infinitamente, ciao ciao.

ferroilpinguino
07-08-2005, 16:09
ciao mi potete aiutare??

vi spiego bene cosa devo fare ...

devo connettermi con java al database che ho fatto con mysql.

è da circa 20 giorni che provo...creo utenti vari e con java carico il driver:com.mysql.jdbc.Driver

tutto ok...quando metto la stringa per la connessione...:

jdbc:mysql://host:3306/pingudb?user=nome&password=passwd

mi da sempre errore , non si connette come dovrebbe ....

quindi tutto quello che penso si debba fare è creare la giusta utenza con i giusti permessi...no???

grazie
posso usare anche mysql administrator...

Abdujaparov
07-08-2005, 17:22
i permessi li devi impostare per l'utente e devi impostare anche l'host dl quale l'utente si può connettere. Per quanto riguarda quello che puoi fare in java su questo link trovi una classe che fattutto quello che serve per connettersi ed eseguire query al database:
http://forum.html.it/forum/showthread.php?threadid=801696
ciao ciao.