有没有办法在Result<Record>
中从jOOQ循环遍历<c:forEach>
?
这是getter方法:
public Vector<Map<String, String>> getUsers() {
Factory sql = new Factory(Database.getInstance().connect(), SQLDialect.MYSQL);
Result<Record> results = sql.select().from("users").fetch();
Vector<Map<String, String>> v = new Vector<Map<String, String>>();
for(Record item: results) {
Map<String, String> m = new HashMap<String, String>();
m.put("login", item.getValueAsString("login"));
// other columns
v.add(m);
}
return v;
}
这是视图:
<c:forEach var="u" items="${users}">
${u.login} <br />
</c:forEach>
有没有办法使我的getter方法变得更简单:
public Result<Record> getUsers() {
Factory sql = new Factory(Database.getInstance().connect(), SQLDialect.MYSQL);
reutrn sql.select().from("users").fetch();
}
但是如前所述,我不知道如何在
<c:forEach>
中循环遍历,或者是否不可能? 最佳答案
似乎您希望像记录一样对记录进行操作。这是使用jOOQ实现此目标的方法:
public List<Map<String, Object>> getUsers() {
Factory sql = new Factory(Database.getInstance().connect(), SQLDialect.MYSQL);
return sql.select().from("users").fetchMaps();
}
请在此处查看相关的Javadocs:
ResultQuery.fetchMaps()
Result.intoMaps()
Record.intoMap()