繁体   English   中英

如何使用 HashMap 从数据库中导入数据?

[英]How can I import data from a database with HashMap?

我需要从带有 hashmap 的数据库中导入数据。 有一个表媒体,我需要获取 media_id(整数)和 media_path(字符串)。 在此之前,我只是像这样导入媒体 ID:

private List<Integer> getMedias() {
    final String queryString = "SELECT media_id from media where XXX ..."

    final Query query = App.getCurrentSession().createSQLQuery(String.valueOf(queryString));
    query.setString("xxx", xxx);
    query.setDate("xxx", xxx);
    query.setDate("xxx", xxx);

    return query.list();

现在,我想做更多这样的事情:

private HashMap<Integer, String> getMedias() {
    final String queryString = "SELECT media_id, media_path from media where XXX ..."

问题是我不知道如何使用 SQL 查询来从数据库中获取哈希图。

我怎样才能做到这一点?

我认为没有办法开箱即用。 您需要转换结果:

List<Object[]> queryResults = query.list();
Map<Integer, String> resultAsMap = new HashMap<>();
for(Object[] row : queryResults) {
   resultAsMap.put((Integer)row[0], (String)row[1]);
}
return resultAsMap;

或者您可以使用流:

List<Object[]> list = query.list();
Map<Integer, String> resultAsMap = list
    .stream()
    .collect( Collectors.toMap( row -> (Integer) row[0], row -> (String) row[1] ) );
return resultAsMap;

或者,您可以使用 ResultTransformer 返回 DTO 列表

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM