PDA

Visualizza la versione completa : Java: Jdbc


Giants
03-09-2003, 14:42
Sto cercando di capire come connettermi a mysql con una pagina jsp facendo ovviamente uso di tomcat.
La form è giusta ma il vero problema è che non ho ben capito dove devo piazzare il jdbc connector. Infatti una volta inseriti i dati da richiedere al db nella form e premuto il pulsante submit della stessa la pagina risultante non è quella con i dati richiesti bensì:

org.gjt.mm.mysql.Driver No suitable driver

perchè evidentemente il file jar contenente il driver non viene trovato.

Dove devo mettere questo benedetto file? :dhò:

raffaeu
03-09-2003, 15:51
guarda che stai settando in maniera errata il tipo di connessione, che driver usi?

Giants
03-09-2003, 15:59
Il j\connector disponibile nel sito di mysql, io so che con semplici programmini in java per poter accedere al database nel file java scrivo

try {
Class.forName("org.gjt.mm.mysql.Driver").newInstance();
} catch (ClassNotFoundException e){out.println("Errore nel caricamento del driver JDBC: "+e.getMessage());}

ecc.

poi lo compilo e lo lancio con il comando
java -cp "indirizzo file jar che contiene il driver" nomefile
ma come faccio ad indicare dov'è il file con il driver a tomcat?
dove devo metterlo?

raffaeu
03-09-2003, 16:06
ma guarda che devi dargli il percorso e il tipo di driver, altrimeniti 'chiaramente' non va, se aspetti guardo sul msdn e provo a risponderti

:D

raffaeu
03-09-2003, 16:16
che tomcat stai usando? 3 4 o 5?

dimmi la versione e vediamo cosa si puo' fare

:D

Giants
03-09-2003, 16:16
Originariamente inviato da raffaeu
ma guarda che devi dargli il percorso e il tipo di driver, altrimeniti 'chiaramente' non va, se aspetti guardo sul msdn e provo a risponderti

:D

ma dove devo dargli il percorso?
Io la mia jsp l'avevo strutturata così (scusa ma incollando è venuto disordinato):

<%@page contentType="text/html"%>
<%@ page language="java" import="java.sql.*" import="java.io.*"%>
<html>
<head><title>JSP Page</title></head>
<body>
<%! private Connection conn; // Creo un oggetto di tipo connesione
private String matricola;
private String nome;
private String cognome;
private String username;
private String password;
private String email;
private String esame;
private String voto;
%>
<%

try {
Class.forName("org.gjt.mm.mysql.Driver").newInstance();
} catch (ClassNotFoundException e) {out.println("Errore nel caricamento del driver JDBC: "+e.getMessage());}
try {
conn=null; // Inizializzo la connessione a null
String url="jdbc:mysql://localhost/studente"; // Macchina dove trovare il database da interrogare
conn=DriverManager.getConnection(url,"root","");// L'ultimo campo indica la password (in questo caso non c'è)
/** ------- Prima query ----------*/
String query="SELECT * FROM studente WHERE username=\""+request.getParameter("username")+
"\" AND password=\""+request.getParameter("password")+"\"";
Statement stmt=conn.createStatement(); // Creates a PreparedStatement object
// for sending parameterized SQL statements to the database.
ResultSet rs=stmt.executeQuery(query); // Executes the given SQL statement, which returns a single ResultSet object.
// (A table of data representing a database result set, which is usually
// generated by executing a statement that queries the database.)


while(rs.next()) {
matricola=rs.getString("matricola");
nome=rs.getString("nome");
cognome=rs.getString("cognome");
username=rs.getString("username");
password=rs.getString("password");
email=rs.getString("email");

}
//System.out.println(nuovoStudente);
rs.close(); // chiudo il resultset

String query2="SELECT nomeEsame, voto FROM esame, studente WHERE matricola=matricola_studente AND username=\""+request.getParameter("username")+
"\" AND password=\""+request.getParameter("password")+"\"";
Statement stmt2=conn.createStatement(); // Creates a PreparedStatement object
// for sending parameterized SQL statements to the database.
ResultSet rs2=stmt2.executeQuery(query2); // Executes the given SQL statement, which returns a single ResultSet object.
// (A table of data representing a database result set, which is usually
// generated by executing a statement that queries the database.)
while(rs2.next()) {
esame=rs2.getString("nomeEsame");
voto=rs2.getString("voto");

}
rs2.close(); // chiudo il resultset

conn.close(); // chiudo la connesione
} catch (Exception e) {out.println(e.getMessage());}
%>

<%-- <jsp:useBean id="beanInstanceName" scope="session" class="package.class" /> --%>
<%-- <jsp:getProperty name="beanInstanceName" property="propertyName" /> --%>
<% if (request.getParameter("username").equals("alberto")) { %>

<% out.println("Ciao "+request.getParameter("username")); %>

<% } %>
</body>
</html>

Giants
03-09-2003, 16:19
tomcat-4.1.24

raffaeu
03-09-2003, 16:26
secondo la guida di j2EE devi seguire questi tre passi

1 - caricamento drivers

Class.forName("sun.jdbc.odbc.JdbcOdbcDriver");

oppure

Class.forName("jdbc.DriverXYZ");

2 - connessione

Connection con = DriverManager.getConnection(url,
"myLogin", "myPassword");

ESEMPIO:

String url = "jdbc:odbc:Fred";
Connection con = DriverManager.getConnection(url, "Fernanda", "J8");



Link all' opensource:

http://java.sun.com/docs/books/tutorial/jdbc/basics/

Giants
03-09-2003, 16:31
mi sembra di aver fatto così vedi sopra... :master:

selvin
04-09-2003, 01:18
Vedi se quest'articolo può aiutarti http://www.cplusplus.it/database/ConnessioneJAVA/index.htm
Visto ke con jsp lavori lato server non capisco l'utilità di un driver diverso dal bridge della sun. Se ho tempo vedo meglio il tuo problema,con il binomio Access-JSP mi funziona tutto!

Loading