Ho provato a fare una semplice applet che fa una query al DB, solo che questa volta non funziona manco con il db in locale, eseguita dal browser.
edit : in locale funziona tutto, sia sotto netbeans che sotto tomcat quindi nel browser
Che dite?
Codice PHP:
import java.awt.Graphics;
import javax.swing.*;
public class Applet extends JApplet {
String username, pwd, p="4545";
public void init() {
//connessione al db
myString error = new myString();
DatabaseManager db = new DatabaseManager("nomeDB", "utente" ,"password");
Object obj[] = new Object[1];
try {
db.absConnect(error);
}
catch (Exception E) {
error.setString("Impossibile caricare il driver");
E.printStackTrace();
}
if (db != null) {
// I campi recuperati dal database
String query = " SELECT user, pwd FROM tabella WHERE p ='"+ p +"'";
if(db.executeQuery(query, error)==false) return;
}
else {
error.setString("Database non valido");
return ;
}
obj = db.getRow(error);
if (obj!=null) {
username = obj[0].toString();
pwd = obj[1].toString();
error.setString("");
}
else {
// Restituisce un errore
error.setString("Nessun contatto trovato");
return ;
}
}
public void paint (Graphics g){
g.drawString("Username = "+username,36,85);
g.drawString("Password = " + pwd,36,105);
}//fine paint
}
Questa è una parte della classe database manager :
Codice PHP:
import java.sql.*;
public class DatabaseManager {
private Connection con;
private ResultSet rs;
private String database;
private String user;
private String passwd;
private Statement stmt;
public DatabaseManager(String database, String user, String passwd)
{
this.database = database;
this.user = user;
this.passwd = passwd;
this.con = null;
this.stmt = null;
this.rs = null;
}
public void setUser(String user)
{
this.user = user;
}
public void setPasswd(String passwd)
{
this.passwd = passwd;
}
public boolean connect(myString error)
{
try
{
// Registra il driver MySQL
Class.forName("org.gjt.mm.mysql.Driver");
String conn = "jdbc:mysql://localhost:3306/" + this.database + "?user=" + this.user + "&password=" + this.passwd;
// Effettua la connessione
con = DriverManager.getConnection(conn);
stmt = con.createStatement();
}
catch (ClassNotFoundException e)
{
error.setString(e.getMessage());
return false;
}
catch(SQLException e)
{
try
{
if(con != null) con.close();
}
catch(SQLException ignored)
{
error.setString(e.getMessage());
return false;
}
}
// Notifica il successo delle operazioni
error.setString("Connessione riuscita");
return true;
}
public boolean executeQuery(String query, myString error)
{
try
{
if(stmt != null)
{
rs = stmt.executeQuery(query);
}
else
{
rs = null;
error.setString("Connessione non valida");
return false;
}
}
catch (SQLException e)
{
error.setString(e.getMessage());
rs = null;
return false;
}
// Notifica il successo delle operazioni
error.setString("Query eseguita con successo");
return true;
}
public Object[] getRow(myString error)
{
try
{
// Sposta il cursore in avanti
if(!rs.next())
{
error.setString("Dati non validi");
return null;
}
// Inizializza le variabili interne
ResultSetMetaData rsmd = rs.getMetaData();
int numColums = rsmd.getColumnCount();
Object[] objs = new Object[numColums];
// Crea l'array di oggetti da restituire
for(int i = 1; i <= numColums; i++)
{
objs[i - 1] = rs.getObject(i);
}
// Restitusce gli oggetti
error.setString("Nessun errore");
return objs;
}
catch (SQLException e)
{
error.setString(e.getMessage());
return null;
}
}