Hallo, ich habe da folgende Klasse gefunden
aufgerufen wird das Ding mit:
Kann mir vielleicht jemand erklären, was das für nen Sinn hat?
Das ganze wird doch nicht als nebenläufiger Thread ausgeführt oder doch?
Ich dachte immer das müsste so aufgerufen werden:
Was ist denn nun richtig? *verwirrtbin*
mfg Verjigorm
Code:
import java.sql.Connection;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.sql.SQLException;
public abstract class Query implements Runnable
{
private ResultSet result;
private Connection con;
private String sql;
public abstract boolean readRow(ResultSet result) throws SQLException;
public Query(Connection _con,String _sql){
con = _con;
sql = _sql;
}
public void run(){
PreparedStatement st=null;
ResultSet result=null;
try{
st=con.prepareStatement(sql);
result = st.executeQuery();
while(result.next() && readRow(result));
}catch (SQLException e) {}
finally{
try {
if(result!=null){
result.close();
}
} catch (SQLException e) {}
if(st!=null){
try {
st.close();
} catch (SQLException e) {}
}
}
}
public int parseInt(int column) throws SQLException{
return Integer.parseInt(result.getString(column));
}
public double parseDouble(int column) throws SQLException{
return Double.parseDouble(result.getString(column));
}
}
aufgerufen wird das Ding mit:
Code:
new Query(param1, param2)
{
@Override
public boolean readRow(ResultSet result) throws SQLException {
// TODO Auto-generated method stub
return false;
}
}.run();
Kann mir vielleicht jemand erklären, was das für nen Sinn hat?
Das ganze wird doch nicht als nebenläufiger Thread ausgeführt oder doch?
Ich dachte immer das müsste so aufgerufen werden:
Code:
new Thread(
new Query(param1, param2)
{
@Override
public boolean readRow(ResultSet result) throws SQLException {
// TODO Auto-generated method stub
return false;
}
}).start();
Was ist denn nun richtig? *verwirrtbin*
mfg Verjigorm