使用Java的问题

时间:2016-02-01 11:32:48

标签: java list

我有一个DAO java类。在DAO中,我执行一个本机SQL查询,它从数据库中输出两条记录。结果将打印在控制台上。但是,调用该方法时,只返回一条记录。为什么? DAO Java类: public Showroom SearchShowroom(String carMake){     会话会话= sessionFactory.openSession();     事务tx = session.beginTransaction();     SQLQuery query = session.createSQLQuery("来自陈列室的SELECT *);         tx.commit();         session.close();     返回sw; }

1 个答案:

答案 0 :(得分:3)

您只返回在循环中创建的最后一个Showroom对象(并丢弃所有其他对象)。如果您想要返回所有内容,请将其添加到List并返回List作为结果:

public List<Showroom> SearchShowroom(String carMake){ 
    ...
    List<Showroom> allResult = new ArrayList<>();
    for(Object[] data : result){
        Showroom sw = new Showroom();
        ...
        allResult.add(sw);
    }
    ...

    return allResult;  
}

除了立即解决您的问题外,还请考虑@borjab的评论。特别是,从不使用字符串连接将变量注入SQL语句 - 始终使用绑定变量。有关详细信息,请参阅What is SQL injection?