So i have code block similar to this:
public class Task {
private Long id;
private String description;
private Date dueDate;
// getters and setters here
public List<Task> getAllTasks(){
String sql =
"SELECT id, description, duedate " +
"FROM tasks";
try(Connection con = sql2o.open()) {
return con.createQuery(sql).executeAndFetch(Task.class);
}
}
}
(There is also a getID method and getDesc method left out) I am able to run something like this to get the objects in the list it returns:
Task myTask1 = Task.getAllTasks().get(0);
If i try and print the id or desc from it like so
System.out.println(myTask1.getID());
System.out.println(myTask1.getDesc());
I always get 0 and null, which is not the correct values. What do i need to do to get this to work?
If you just want to print SQL result, it is possible by invoking executeAndFetchTable()
and iterate the returning org.sql2o.data.Table
object. Here is the sample code:
import org.junit.Test;
import org.sql2o.Connection;
import org.sql2o.Sql2o;
public class Sql2oTest {
@Test
public void testSql2oTable() {
Sql2o sql2o = new Sql2o("jdbc:postgresql://10.9.8.7:5432/testdb", "utest", "password");
try (Connection con = sql2o.open()) {
con.createQuery("SELECT * FROM pg_catalog.pg_tables")
.executeAndFetchTable() // No entity class needed
.rows() // List<org.sql2o.data.Row>
.stream() // Java 8 stream
.forEach(row -> // print what you want
System.out.println(row.getString(1) +
", " + row.getObject(2) +
", " + row.getObject("hasindexes")));
}
}
}