如何在不使用hql,jpql查询的情况下从简单java中的多个类获取查询结果

时间:2017-09-01 11:20:42

标签: java

当我们在java中创建jpql查询时如下所示 从a,b,c中选择a。,b。 c。*,其中a.id = b.id和b.id = c.id

结果是对象数组的列表,所以第一个数组是表的值,第二个是b表的值同样

我的问题是当我们在sql中编写相同的查询时,结果是什么。以及如何获取每个表的值。

1 个答案:

答案 0 :(得分:0)

您通常会针对不同的数据运行不同的查询。

来自数据库的信息的格式为ResultSet。 ResultSet具有不同的字段。

示例:

    PreparedStatement preparedStatement = 
            PersistenceProvider.getInstance().prepareStatement("select a.*, c.* from actor a left join city c on ...");

    ResultSet resultSet = preparedStatement.executeQuery();
    while (resultSet.next()){
        ActorBean actorBean = new ActorBean();
        actorBean.setActorId(resultSet.getInt("actor_id"));
        actorBean.setFirstName(resultSet.getString("first_name"));
        actorBean.setLastName(resultSet.getString("last_name"));
        actorBean.setLastUpdate(resultSet.getTimestamp("last_update"));

        actorBeanList.add(actorBean);

        CityBean cityBean = new CityBean();
        cityBean.setCityId(resultSet.getInt("city_id"));
        cityBeanList.add(cityBean);
    }

您可以创建不同类的实例,并将从ResultSet中获取的值放在这些值中。

在上面的示例中,您不必始终创建ActorBean的实例,也可以创建其他类的实例。