questo è il codice, ma non so se ci capirai qualcosa, a volte fatico anch'io a capire ciò che ho scritto...
codice:
long numeroID=0;
numeroID=this.trovaIdMax();
ResultSet rs=null;
PreparedStatement ps=null;
PreparedStatement ps2=null;
PreparedStatement ps3=null;
PreparedStatement ps4=null;
String query="select * from persona where id_persona=?;";
ps=connessione.prepareStatement(query);
String update="update scritto set id_persona=? where id_persona=?;";
String delete="delete p.* from persona p where id_persona=?;";
ps3=connessione.prepareStatement(delete);
String query2="select id_persona,ptype,name from persona where name=?;";
ps4=connessione.prepareStatement(query2);
ResultSet res=null;
String controlla="select id_articolo,id_persona from scritto where id_persona=?;";
String del="delete s.* from scritto s where id_persona=? and id_articolo=?;";
PreparedStatement ps5=null;
PreparedStatement ps6=null;
PreparedStatement ps7=null;
ResultSet rs5=null;
ResultSet rs6=null;
ps2=connessione.prepareStatement(update);//-----
ps5=connessione.prepareStatement(controlla);//--
ps6=connessione.prepareStatement(controlla);//--
ps7=connessione.prepareStatement(del);//--
for (long i = 1 ; i < numeroID ; i++)
{
String ivalue=String.valueOf(i);
ps.setString(1,ivalue);
rs=ps.executeQuery(); //select * from persona where id_persona=?;
while (rs.next())
{
String nomecorrente=rs.getString(2);
ps4.setString(1,nomecorrente);
res=ps4.executeQuery(); //select id_persona,ptype,name from persona where name=?;
while (res.next())
{
String name=res.getString(3);
Long idcorrentelong=Long.parseLong(res.getString(1));
String type=res.getString(2);
if(idcorrentelong!=i && type.equals("author"))
{
if (nomecorrente.toLowerCase().equals(name.toLowerCase()))
{
ps5.setString(1,String.valueOf(i));
rs5=ps5.executeQuery();
ps6.setString(1,String.valueOf(idcorrentelong));
rs6=ps6.executeQuery();
while (rs6.next())
{
String art2=rs6.getString(1);
String idp=rs6.getString(2);
while (rs5.next())
{
String art=rs5.getString(1);
if (art.equals(art2))
{
ps7.setString(1,idp);
ps7.setString(2,art2);
ps7.executeUpdate();
ps3.setString(1,String.valueOf(idp));
ps3.executeUpdate();
}
}
}//end while rs6
}
else
{
ps2.setString(1,String.valueOf(i));
ps2.setString(2,String.valueOf(idcorrentelong));
ps2.executeUpdate();
ps3.setString(1,String.valueOf(idcorrentelong));
ps3.executeUpdate();
}
}//end main if
}
}
}