package com.venky.swf.sql;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.util.logging.Level;
import com.venky.swf.db.table.Record;
import com.venky.swf.routing.Config;
public class DataManupulationStatement extends SqlStatement{
protected Level level = Level.FINE;
private String pool = null;
public DataManupulationStatement(String pool){
this.pool = pool;
}
public String getPool(){
return pool;
}
public int executeUpdate(){
return executeUpdate(null);
}
public int executeUpdate(Record generatedKeyValues,String... generatedKeyColumns){
Config.instance().getLogger(getClass().getName()).log(level, "Executing {0}", getRealSQL());
PreparedStatement st = null;
try {
st = prepare(generatedKeyColumns);
int ret = st.executeUpdate();
if (generatedKeyValues != null){
ResultSet rs = st.getGeneratedKeys();
if (rs != null && rs.next()){
generatedKeyValues.load(rs);
}
}
return ret;
} catch (SQLException ex) {
throw new RuntimeException(ex);
} finally {
if (st != null){
try {
st.close();
} catch (SQLException ex) {
throw new RuntimeException(ex);
}
}
}
}
}