java - 如何使用 sql2o 访问和打印数据

标签 java mysql jdbc sql2o

所以我有与此类似的代码块:

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);
}
}
}

(还有一个getID方法和getDesc方法被遗漏了) 我可以运行类似的命令来获取它返回的列表中的对象:

Task myTask1 = Task.getAllTasks().get(0);

如果我尝试像这样打印 id 或 desc

System.out.println(myTask1.getID());
System.out.println(myTask1.getDesc());

我总是得到 0 和 null,这不是正确的值。我需要做什么才能让它发挥作用?

最佳答案

如果您只想打印 SQL 结果,可以通过调用 executeAndFetchTable() 并迭代返回的 org.sql2o.data.Table 对象。这是示例代码:

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")));
        }
    }
}

关于java - 如何使用 sql2o 访问和打印数据,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33745104/

相关文章:

java - 了解使用 map 和 vector 时垃圾收集器在 Java 7 中的工作原理

mysql - SQL 查询 : list of all maximal reservers

php - 如何循环遍历mySQL表中的元素(一个字段)

java - 以 java.sql.Date 格式获取当前日期

java - Jdbcrowset 错误?返回空指针异常!

jdbc - DBCP 空闲连接未在 Camel Route 中重用

java - 粒子系统,阵列中的延迟

java - 解决编译缓慢问题

java - java是否有任何机制让VM在不使用javaagent等的情况下跟踪自身的方法调用?

mysql - 将医疗数据表转换为 MySQL 数据库设计