Why if i query the database from the db class using queryFromDb() i get "ResultSet not open" when it try to do rs.next() for the second time and instead if i try to use queryFromMain everything works?
public class Db {
private String protocol = "jdbc:derby:";
private ResultSet resultSet = null;
private Connection connection = null;
private Statement statement;
public Db(){
try{
Properties props = new Properties();
props.put("user", "user");
props.put("password", "password");
String dbName = "database";
connection = DriverManager.getConnection(protocol + dbName , props);
}
catch(SQLException sqle){
printSQLException(sqle);
}
}
public ResultSet returnValue(String query){
try{
statement = connection.createStatement();
resultSet = statement.executeQuery(query);
}
catch(SQLException sqle){
printSQLException(sqle);
}
return resultSet;
}
public void queryFromDb(){
try {
statement = connection.createStatement();
ResultSet rs = statement.executeQuery("SELECT * FROM clsbck ORDER BY id");
while(rs.next()){
System.out.println(rs.getString(2));
String str = "INSERT INTO cls rck VALUES 2";
[...]
statement.execute(str);
}
} catch (SQLException e) {
printSQLException(e);
}
}
}
}
public class Main {
private static Db db;
public static void main(String[] args){
db = new Db();
}
public static void queryFromMain(){
ResultSet rs = db.returnValue("SELECT * FROM clsbck ORDER BY id");
try {
while(rs.next()){
String str = "INSERT INTO cls rck VALUES 2";
[...]
db.addValue(str);
}
} catch (SQLException e) {
printSQLException(e);
}
}
}
Aucun commentaire:
Enregistrer un commentaire