Ciao a tutti,
ho un piccolo problemino con JDBC: non riesco ad effettuare una query del tipo "SELECT * FROM info WHERE nickname = ?" dove al posto del "?" devo passare un parametro. Come si fa? Info è una query di unione tra due tabelle.
io ho provato in 2 modi:
il primo
try{
Class.forName("sun.jdbc.odbc.JdbcOdbcDriver");
}
catch(ClassNotFoundException pe){
System.out.println(pe.toString());
System.out.println("Il driver non può essere caricato");
}
try{
Connection conn = DriverManager.getConnection("jdbcdbc:utentiJChat","","");
Statement stmt = conn.createStatement();
ResultSet rs = stmt.executeQuery("SELECT *FROM info WHERE nickname=\"+nick+"\"");
while(rs.next()){
// richiamo i dati con rs.getString("dati");
}
}
catch(SQLException _sql){
System.out.println(_sql.getMessage());
_sql.printStackTrace(System.out);
System.out.println("Problemi di lettura del DB");
}
il secondo
try{
Class.forName("sun.jdbc.odbc.JdbcOdbcDriver");
}
catch(ClassNotFoundException pe){
System.out.println(pe.toString());
System.out.println("Il driver non può essere caricato");
}
try{
Connection conn = DriverManager.getConnection("jdbcdbc:utentiJChat","","");
ResultSet rs=null;
PreparedStatement pstmt= conn.prepareStatement("SELECT * FROM info WHERE nickname = ?");
pstmt.setString(1,nick);
rs=pstmt.executeQuery();
if(rs.getString("visualInfo").equals("si") && rs.getString("autorPosta").equals("si")){
info=rs.getString("nome")+"¤"+rs.getString("dataNa scita")+"¤"+rs.getString("stato")+"¤"+rs.getString ("prov")+"¤"+rs.getString("citta")+"¤"+rs.getStrin g("mail")+"¤"+rs.getString("segniPart")+"¤"+rs.get String("hobby")+"¤"+rs.getString("autorPosta")+"¤" +rs.getString("visualInfo")+"§"+rs.getString("avat ar");
}else if(rs.getString("visualInfo").equals("si") && !rs.getString("autorPosta").equals("si")){
info=rs.getString("nome")+"¤"+rs.getString("dataNa scita")+"¤"+rs.getString("stato")+"¤"+rs.getString ("prov")+"¤"+rs.getString("citta")+"¤"+"Non Autorizzato"+"¤"+rs.getString("segniPart")+"¤"+rs. getString("hobby")+"¤"+rs.getString("autorPosta")+ "¤"+rs.getString("visualInfo")+"§"+rs.getString("a vatar");
}else if(!rs.getString("visualInfo").equals("si") && rs.getString("autorPosta").equals("si")){
info="Non Autorizzato"+"¤"+rs.getString("dataNascita")+"¤"+r s.getString("stato")+"¤"+"Non Autorizzato"+"¤"+"Non Autorizzato"+"¤"+rs.getString("mail")+"¤"+"Non Autorizzato"+"¤"+rs.getString("hobby")+"¤"+rs.getS tring("autorPosta")+"¤"+rs.getString("visualInfo") +"§"+rs.getString("avatar");
}else if(!rs.getString("visualInfo").equals("si") && !rs.getString("autorPosta").equals("si")){
info="Non Autorizzato"+"¤"+rs.getString("dataNascita")+"¤"+r s.getString("stato")+"¤"+"Non Autorizzato"+"¤"+"Non Autorizzato"+"¤"+"Non Autorizzato"+"¤"+"Non Autorizzato"+"¤"+rs.getString("hobby")+"¤"+rs.getS tring("autorPosta")+"¤"+rs.getString("visualInfo") +"§"+rs.getString("avatar");
}
}
catch(SQLException _sql){
System.out.println(_sql.getMessage());
_sql.printStackTrace(System.out);
System.out.println("Problemi di lettura del DB");
}
Cosa sbaglio?