PDA

View Full Version : [JSP] connessioine a db mysql


orpheus
24-06-2004, 16:28
Ciao ho un problema, devo connettermi a un db in mysql da una pagina jsp : ho fatto le seguenti operazioni

1-installato driver ODBC 3.51 per mysql
2-Creata una dsn, provaDati
3- provato questo script jsp


<%if(request.getParameter("stato").equals("login")) out.println(" LOGIN");
else out.println(" REGISTRAZIONE<br>");

int esito; //esito aggiornamento
Connection conn = null;
String nome=new String(request.getParameter("nome"));
String cognome=new String(request.getParameter("cognome"));
//carica il file di classe del driver per il ponte Odbc
Class.forName("sun.jdbc.odbc.JdbcOdbcDriver");

//crea la connessione con l'origine dati
conn = DriverManager.getConnection("jdbc:odbc:provaDati","root","");

//crea lo statement
Statement st = conn.createStatement();
String query="INSERT INTO user (nome,pass) values ("+ nome + ","+ cognome + ")";
//esegue l'aggiornameto o l'inserimento
esito = st.executeUpdate(query);
//se esito è uguale a 1 tutto è andato bene
if (esito == 1){
out.println("inserimento eseguito correttamente: ");
out.println(request.getParameter("nome")+", ");
out.println(request.getParameter("cognome"));
}else{
out.println("inserimento non eseguito: ");
out.println(request.getParameter("nome")+", ");
out.println(request.getParameter("cognome"));
}
//rs.close();
conn.close();
%>


Tomcat mi restituisce questo errore:
javax.servlet.ServletException: [Microsoft][Driver Manager ODBC] Nome origine dati non trovato e driver predefinito non specificato.

java.sql.SQLException: [Microsoft][Driver Manager ODBC] Nome origine dati non trovato e driver predefinito non specificato.

Grazie mille a chiunque mi aiuti

cionci
24-06-2004, 16:59
Forse ti conviene usare questo ?

http://www.mysql.com/products/connector/j/

Hai provato se il DSN funziona anche con altri programmi ?

kingv
24-06-2004, 20:20
Originariamente inviato da cionci
Forse ti conviene usare questo ?
http://www.mysql.com/products/connector/j/
Hai provato se il DSN funziona anche con altri programmi ?



andiamo bene, se rispondi anche alle domande su ambienti Java possiamo anche non entrare più, solo che poi ti toccherà fare anche i post con le domande..... :D

orpheus> il bridge jdbc:odbc che stai usando non e' una buona idea per qualunque cosa non sia un prova, tienilo presente.
il codice che hai postato sembra corretto, se fai la prova della sorgente dati si connette?

prova a usare un driver jdbc vero, o quello che ha postato cionci (che non ho mai utilizzato ma e' ufficiale) o il buon driver opensource che trovi su http://mmmysql.sourceforge.net/

cionci
24-06-2004, 20:23
Originariamente inviato da kingv
andiamo bene, se rispondi anche alle domande su ambienti Java possiamo anche non entrare più, solo che poi ti toccherà fare anche i post con le domande..... :D[/url]
:D

orpheus
25-06-2004, 09:22
Originariamente inviato da kingv

orpheus> il bridge jdbc:odbc che stai usando non e' una buona idea per qualunque cosa non sia un prova, tienilo presente.
il codice che hai postato sembra corretto, se fai la prova della sorgente dati si connette?


Sisi ho eseguito il test della sorgente di dati e mi dava tutto ok.
Ho usato un ponte jdbc:odbc xke' da completo neofita ho trovato questo consgilio in giro per la rete.
Proverò il vostro consiglio.

Ormai sono curioso e voglio capire dove sta l'errore cmq, volevo kiedervi se la Data Source una volta creta va copiata da qke parte in Tomcat: basta creare una DSN utente oppure bisogna salvarla in un file e in caso dove bisogna metterlo (ho provato a metterlo nella ROOT dove ho tutti i sorgenti jsp..ma il risultato nn è cambiato)

grazie e ciao

gabriele81
25-06-2004, 10:26
Originariamente inviato da cionci
Forse ti conviene usare questo ?

http://www.mysql.com/products/connector/j/

Hai provato se il DSN funziona anche con altri programmi ?


Confermo, utilizzza questo.

una volta installati i driver per fare la connessione devi scrivere una cosa del genere:

String MYSQL_HOST = "localhost";
String MYSQL_DB = "nome_db";
String MYSQL_USER = "root";
String MYSQL_PASSWD = "";

Class.forName("com.mysql.jdbc.Driver");

Connection c = DriverManager.getConnection("jdbc:mysql://" + MYSQL_HOST + "/" + MYSQL_DB +"?user=" + MYSQL_USER + "&password=" + MYSQL_PASSWD);

orpheus
25-06-2004, 10:54
Sigh sigh mi viene il nervoso......

scusate se rompo ankora, probabilmente soffro di ebetismo.

ho scaricato il driver Connector/j 3.0 dal sito mysql
nella guida mi dice i jar del driver nella mia WEB-INF/lib

nel manuale di tomcat si dice di metterlo in $CATILINA_HOME/common/lib

io ho provato a mettere sia il jar "mysql-connector-java-3.0.14-production-bin.jar" sia tutta la cartella estratta dallo zip in entrambe le direcotry sopra citate ma nada de nada

puntuale al caricamento del driver mi parte l'eccezione


try{
Class.forName("com.mysql.jdbc.Driver");
}catch(Exception e) {out.println("caricamento driver"); }


non capisco, io ho installato tomcat 5.025 su win xp home, devo modificare qcosa??, devo mettere il jar del driver in tomcat?? in caso devo aggiungere solo il driver sopra citato oopure anke qcosaltro ke c'era nello zippone del driver??

grazie ancora per l'aiuto

gabriele81
25-06-2004, 11:02
Hai modificato la variabile di ambiente del classpath? fai passo passo quello che dice la guida nello zip dei connector.

kingv
25-06-2004, 11:02
Originariamente inviato da orpheus
ho scaricato il driver Connector/j 3.0 dal sito mysql
nella guida mi dice i jar del driver nella mia WEB-INF/lib

nel manuale di tomcat si dice di metterlo in $CATILINA_HOME/common/lib



nel primo caso e' visibile solo alla tua applicazione, nel secondo a tutto cio' che e' in tomcat (engine compreso).
non scompattare il jar, metti quello e riavvia tomcat

orpheus
25-06-2004, 13:34
Azzzzzzzzolina....sono un pirlometro..in effetti era tutto alright bastava riavviare il servizio...

grazie mille per i preziosi consigli a tutti